2017-08-08 6 views
0
  ############################################################# 
      # This function will create a handler for a specific 
      # adapter on the new host, so these get used for processing. 
      # [direction]: 'Receive','Send' 
      ############################################################# 
      function CreateBizTalkAdapterHandler(
       [string]$adapterName, 
       [string]$direction, 
       [string]$hostName, 
       [string]$originalDefaulHostName, 
       [boolean]$isDefaultHandler) 
       #[boolean]$removeOriginalHostInstance) 
      { 
       if($direction -eq 'Receive') 
       { 
        [System.Management.ManagementObject]$objAdapterHandler = ([WmiClass]"root/MicrosoftBizTalkServer:MSBTS_ReceiveHandler").CreateInstance() 
        $objAdapterHandler["AdapterName"] = $adapterName 
        $objAdapterHandler["HostName"] = $hostName 
       } 
       else 
       { 
        [System.Management.ManagementObject]$objAdapterHandler = ([WmiClass]"root/MicrosoftBizTalkServer:MSBTS_SendHandler2").CreateInstance() 
        $objAdapterHandler["AdapterName"] = $adapterName 
        $objAdapterHandler["HostName"] = $hostName 
        $objAdapterHandler["IsDefault"] = $isDefaultHandler 
       } 

       try 
       { 
        $putOptions = new-Object System.Management.PutOptions 
        $putOptions.Type = [System.Management.PutType]::CreateOnly; 

        [Type[]] $targetTypes = New-Object System.Type[] 1 
        $targetTypes[0] = $putOptions.GetType() 

        $sysMgmtAssemblyName = "System.Management" 
        $sysMgmtAssembly = [System.Reflection.Assembly]::LoadWithPartialName($sysMgmtAssemblyName) 
        $objAdapterHandlerType = $sysMgmtAssembly.GetType("System.Management.ManagementObject") 

        [Reflection.MethodInfo] $methodInfo = $objAdapterHandlerType.GetMethod("Put", $targetTypes) 
        $methodInfo.Invoke($objAdapterHandler, $putOptions) 

        Write-Host "$adapterName $direction Handler for $hostName was successfully created" -Fore DarkGreen 
       } 
       catch [System.Management.Automation.RuntimeException] 
       { 
        if ($_.Exception.Message.Contains("The specified BizTalk Host is already a receive handler for this adapter.") -eq $true) 
        { 
         Write-Host "$hostName is already a $direction Handler for $adapterName adapter." -Fore DarkRed 
        } 
        elseif($_.Exception.Message.Contains("The specified BizTalk Host is already a send handler for this adapter.") -eq $true) 
        { 
         Write-Host "$hostName is already a $direction Handler for $adapterName adapter." -Fore DarkRed 
        } 
        else { 
         write-Error "$adapterName $direction Handler for $hostName could not be created: $_.Exception.ToString()" 
        } 
       } 

       #if($removeOriginalHostInstance) 
       #{ 
        #DeleteBizTalkAdapterHandler $adapterName $direction $originalDefaulHostName 
       #} 
      } 

Quand je lanceerreur CreateBizTalkAdapterHandler

CreateBizTalkAdapterHandler -adapterName "WCF-WebHttp" -direction "Send" -hostName "ServiceProcessing" -originalDefaulHostName "BizTalkServerApplication" -isDefaultHandler 0 

crée gestionnaire envoyer ServiceProcessing mais quand j'utilise

CreateBizTalkAdapterHandler -adapterName "WCF_WSHttp" -direction "Send" -hostName "PMProcessing" -originalDefaulHostName "BizTalkServerApplication" -isDefaultHandler 0 

Je reçois erreur lorsque je traitais avec adaptateur "WCF-WSHttp" :

CreateBizTalkAdapterHandler: WCF_WSHttp Le gestionnaire d'envoi pour PMOServiceProcessing n'a pas pu être créé: Exception appelant "Invoke" avec "2" argument (s): "Aucune instance n'a été trouvée avec la clé spécifiée. Cela peut être le résultat de l'instance en cours supprimée par une autre session Admin BizTalk . ". Exception.ToString() À la ligne: 3 Char: 1 + CreateBizTalkAdapterHandler -adapterName" WCF_WSHttp "-direction" Sen ... + ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [write-error], WriteErrorException + FullyQualifiedErrorId: Microsoft.PowerShell.Commands.WriteErrorException, CreateBizTalkAdapterHandler

+0

Désolé Guys ..J'ai trouvé la solution! c'est une faute de frappe avec adaptateurName "WCF_WSHttp" au lieu de l'adaptateur "WCF-WSHttp". –

Répondre

0
CreateBizTalkAdapterHandler -adapterName "WCF-WSHttp" -direction "Send" -hostName "PMProcessing" -originalDefaulHostName "BizTalkServerApplication" -isDefaultHandler 0