How to add WCF Service Reference when using net.msmq
使用服务时如何启动 WCF 客户端仅在 net.msmq 上可用
- 当你使用"添加服务参考"时,你会得到一个错误...
无法初始化 MetadataExchangeClient 实例,因为方案 \\'net.msmq\\' 没有可用的绑定。您可以在构造函数中提供绑定,或指定配置名称。
参数名称:方??案
如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。
例如,我已经启动并运行了 MSDN 中的 BizTalk 示例 WcfNetAdapterPublishing,它包括一个控制台测试客户端,该客户端使用 ...
1 | net.msmq://localhost/private/WcfNetMsmqAdapterPublishing |
所以看起来是可能的,但我还是看不到开始?
您可以通过
或者您可以在服务器和客户端项目之间与您的服务和数据合同共享合同程序集,并手动创建配置(真的没什么大不了的),并使用
您需要添加一个前缀为
1 | http://localhost/private/WcfNetMsmqAdapterPublishing ... |
然后您需要为
1 | <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> |
然后启动您的服务(在 Visual Studio 之外)...然后添加对您添加的
这是我的一个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <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> </baseAddresses> </host> </service> |
在本例中,您只需将服务引用添加到 http://localhost/private/Archiver...就完成了。