#############################################################
# 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
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". –