[英]Biztalk - Consuming WCF via an external assembly
我有一个WCF服务,该服务被引用到程序集中。 BizTalk项目中已经引用了该程序集。 通过Orchestration调用WCF方法时,出现以下错误: 在ServiceModel客户端配置部分中找不到引用合同'SubscriberService.ISubscriber'的默认终结点元素。
我已经用谷歌搜索过,如果您尝试通过Window项目或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 Project的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>
谢谢
因为这是一个BizTalk项目,所以答案始于不要这样做 。
虽然可以,但这不是在BizTalk应用程序中调用服务的正确方法。
因此,解决此问题的正确方法是使用BizTalk WCF适配器将该服务添加到您的应用程序中。
如果您团队中的任何人提出异议,我们很乐意帮助您解决这些问题。 在任何情况下,您描述的都是正确的做法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.