【问题标题】:How to add WCF Service Reference when using net.msmq使用 net.msmq 时如何添加 WCF 服务引用
【发布时间】:2011-03-12 10:07:58
【问题描述】:

当使用服务仅在 net.msmq 上可用时如何启动 WCF 客户端
- 当你使用“添加服务引用”时,你会得到一个错误......

无法初始化 MetadataExchangeClient 实例,因为方案“net.msmq”没有可用的绑定。您可以在构造函数中提供绑定,或指定配置名称。 参数名称:方​​案 如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。

例如,我已经启动并运行了 MSDN 中的 BizTalk 示例 WcfNetAdapterPublishing,它包括一个控制台测试客户端,该客户端使用该服务...

net.msmq://localhost/private/WcfNetMsmqAdapterPublishing

所以看起来是可能的,但我还是看不到开始?

【问题讨论】:

    标签: wcf msmq biztalk


    【解决方案1】:

    您可以在单独的端点上通过 basicHttpBinding 公开相同的服务和数据合约,使用该端点(及其元数据交换)创建服务引用,然后手动调整您的 app.config 以使用 netMsmqBinding而是。

    或者您可以在服务器和客户端项目之间与您的服务和数据合同共享合同程序集,并手动创建配置(真的没什么大不了的),并使用ChannelFactory<T>在代码中创建您的客户端代理.由于您已经在使用netMsmqBinding,因此您肯定在电线的两端都使用了 .NET - 因此该技术应该可以正常工作。

    【讨论】:

      【解决方案2】:

      您需要添加一个前缀为http 的基地址(除了您拥有的net.msmq 之外)。因此,在您给出的示例中使用 net.msmq,您将添加以下内容:

      http://localhost/private/WcfNetMsmqAdapterPublishing ... 
      

      然后您需要为mex 添加一个端点,如下所示:

      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      

      然后启动您的服务(在 Visual Studio 之外)...然后添加对您添加的 http:// 端点的引用...

      这是我的一个例子:

      <service name="Services.Archiver" behaviorConfiguration="FacebookArchiver">
            <endpoint address="" 
                      binding="netMsmqBinding" 
                      bindingConfiguration="msmq" 
                      contract="Services.IArchiver" 
                      behaviorConfiguration="validator" />
            <endpoint address="mex" 
                      binding="mexHttpBinding" 
                      contract="IMetadataExchange" />
            <host>
              <baseAddresses>
                <add baseAddress="net.msmq://localhost/private/Archiver" />
                <add baseAddress="http://localhost/private/Archiver" />
              </baseAddresses>
            </host>
          </service>
      

      在此示例中,您只需将服务引用添加到 http://localhost/private/Archiver... 完成。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-15
        • 2012-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-14
        • 1970-01-01
        相关资源
        最近更新 更多