Biztalk:在不同应用程序中并行版本控制

Biztalk:在不同应用程序中并行版本控制,biztalk,versioning,biztalk-2013,Biztalk,Versioning,Biztalk 2013,我想部署两个应用程序,使用BizTalk WCF服务发布向导将其发布到不同的端点。第二个应用程序是第一个应用程序的新版本。我已经更改了架构属性中的程序集版本和目标命名空间。应用程序和端口具有不同的名称 第一个应用程序在我部署第二个应用程序之前工作 然后第一个失败,并显示以下消息: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body> <s:Fault>

我想部署两个应用程序,使用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">&lt;?xml version="1.0"?>
 &lt;string>Unexpected error occured.&lt;/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>&lt;?xml version="1.0"?>
&lt;string>Unexpected error occured.&lt;/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[]&amp; outputs, IAsyncResult result)
  at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeEnd(MessageRpc&amp; rpc)
  at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage7(MessageRpc&amp; 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>

a:内部故障
?xml version=“1.0”>
字符串>发生意外错误。/string>
?xml version=“1.0”>
字符串>发生意外错误。/string>
在Microsoft.BizTalk.Adapter.Wcf.Runtime.BizTalkServiceInstance.OnOperation中(IAsyncResult结果)
AsyncInvokeEndTwoWayMethod(对象,对象[],IAsyncResult)
位于System.ServiceModel.Dispatcher.AsyncMethodInvoker.InvokeEnd(对象实例、对象[]和输出、IAsyncResult结果)
位于System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeEnd(MessageRpc&;rpc)
位于System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage7(MessageRpc&;rpc)
位于System.ServiceModel.Dispatcher.MessageRpc.Process(布尔isOperationContextSet)
Microsoft.BizTalk.Adapter.Wcf.Runtime.BizTalkNackeException
第二个应用程序运行良好。原因可能是什么?

尝试在BizTalk中进行并行版本控制会带来一个复杂的世界—版本被硬编码到绑定文件中,架构部署必须使用不同的名称空间,通过向导发布的web服务必须重做。您的服务可能会遇到此错误的原因有很多,修复一个可能会发现更多。如果你坚持走这条路,开始更仔细地观察事件日志条目,而不是SOAP响应——这可能会给你更多的线索,解释为什么这不能按预期工作


最好为您的新应用程序和工件指定一个新名称,并将它们作为新应用程序部署—即使这会导致两者之间的代码重复。

我记得有一个问题,即两个端口使用同一主机实例会导致它们相互干扰。我从来都不清楚为什么会这样,我也不知道为什么会这样。创建一个新的主机实例并尝试将其中一个放在它下面会很简单。事件日志中可能会有更好的错误消息。你能在那里查一下吗?