0
我有一個WCF服務被引用到程序集中。此程序集已在BizTalk項目中引用。 通過Orchestration調用WCF方法時,它給出了以下錯誤: 無法找到在ServiceModel客戶端配置部分中引用合同'SubscriberService.ISubscriber'的默認端點元素。Biztalk - 通過外部組件消費WCF
我已經使用它,它是一個已知的問題,如果您嘗試在窗口項目或Web應用程序中通過程序集調用WCF。如果我們在調用程序集的項目中添加配置,可以解決這個問題。我測試了示例項目中的場景,並將客戶端配置複製到我的測試項目可以解決問題,但這在BIZTALK項目中不起作用。
配置中裝配的app.config文件:
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="CustomerMain.HelperAssembly.CoreProcess.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<system.serviceModel>
<protocolMapping>
<add binding="basicHttpBinding" scheme="http" />
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_ISubscriber" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:81/SubscriberService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISubscriber"
contract="SubscriberService.ISubscriber" name="BasicHttpBinding_ISubscriber" />
</client>
</system.serviceModel>
</configuration>
在BizTalk項目的app.config文件配置:
<configuration>
<system.serviceModel>
<protocolMapping>
<add binding="basicHttpBinding" scheme="http" />
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_ISubscriber" bypassProxyOnLocal="true" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:81/SubscriberService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISubscriber"
contract="SubscriberService.ISubscriber" name="BasicHttpBinding_ISubscriber" />
</client>
</system.serviceModel>
</configuration>
感謝
我同意,你應該通過發送端口調用WCF服務。 – Gruff
非常同意約翰。我曾遇到過一個解決方案,他們使用外部程序集來調用BizTalk的Web服務。這導致了各種問題,因爲它不是多線程安全的,也沒有正確處理異常(它只是通過異常有效負載而不引發異常)。當我從客戶那裏得到預算時,這被BizTalk發送端口取代,並且.net項目被烘烤了。 – Dijkgraaf
爲了避免在編排中創建持久性點,我看到了出於性能原因從BizTalk調用這種方式的服務。 –