我想部署两个应用程序,我使用BizTalk WCF服务发布向导将其发布到不同的端点。第二个应用程序是第一个应用程序的新版本。我在架构属性中更改了程序集版本和目标命名空间。应用程序和端口有不同的名称。
第一个应用程序在部署第二个应用程序之前有效。
然后第一个失败并显示以下消息:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<s:Fault>
<faultcode xmlns:a="http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher">a:InternalServiceFault</faultcode>
<faultstring xml:lang="de-DE"><?xml version="1.0"?>
<string>Unexpected error occured.</string></faultstring>
<detail>
<ExceptionDetail xmlns="http://schemas.datacontract.org/2004/07/System.ServiceModel" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<HelpLink i:nil="true"/>
<InnerException i:nil="true"/>
<Message><?xml version="1.0"?>
<string>Unexpected error occured.</string></Message>
<StackTrace>at Microsoft.BizTalk.Adapter.Wcf.Runtime.BizTalkServiceInstance.EndOperation(IAsyncResult result)
at AsyncInvokeEndEndTwoWayMethod(Object , Object[] , IAsyncResult )
at System.ServiceModel.Dispatcher.AsyncMethodInvoker.InvokeEnd(Object instance, Object[]& outputs, IAsyncResult result)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeEnd(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage7(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)</StackTrace>
<Type>Microsoft.BizTalk.Adapter.Wcf.Runtime.BizTalkNackException</Type>
</ExceptionDetail>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
第二个应用程序运行正常。可能是什么原因?
答案 0 :(得分:0)
MSDN recommends against doing this
尝试在BizTalk中进行并行版本控制引入了一个复杂的世界 - 版本被硬编码到绑定文件中,模式部署必须使用不同的命名空间,并且必须重做通过向导发布的Web服务。您的服务可能遇到此错误的原因有很多,修复一个可能会发现更多错误。如果你坚持走这条路,那就开始更仔细地查看EventLog条目而不是SOAP响应 - 这可能会让你更多地了解为什么它没有按预期工作。
最好为新的应用程序和工件提供一个新名称,并将它们部署为新的应用程序 - 即使这会导致两者之间重复代码。