我试图在visual studio中为我的wcf应用添加服务引用。 我可以做各种绑定,如net.pipe和basichttp ... 但是对于net.msmq绑定,我收到错误
以下是我的web.config的相关部分:
<system.serviceModel>
<bindings>
<netMsmqBinding>
<binding name="netMsmqBinding" exactlyOnce="false">
<security mode="None"></security>
</binding>
</netMsmqBinding>
<basicHttpBinding>
<binding name="basicHttp" />
</basicHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="WCF_ServiceSample.WCF_ServiceBehavior" />
</endpointBehaviors>
<serviceBehaviors>
<behavior name="serviceBehavior">
<serviceMetadata />
<serviceDebug />
<serviceDiscovery />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<services>
<service behaviorConfiguration="serviceBehavior" name="WCF_ServiceSample.WCF_Service">
<host>
<baseAddresses>
<add baseAddress="http://localhost:4000/Services/" />
<add baseAddress="net.msmq://localhost/Services/" />
</baseAddresses>
</host>
<endpoint address="mex" behaviorConfiguration="WCF_ServiceSample.WCF_ServiceBehavior"
binding="mexHttpBinding" bindingConfiguration="" name="mex_http"
contract="IMetadataExchange" />
<endpoint address="AdventureWorksServiceHttp" binding="basicHttpBinding" bindingConfiguration=""
name="basicHttpEndpt" contract="WCF_ServiceSample.WCF_Service" />
<endpoint address="AdventureWorksServiceNetMsmq"
binding="netMsmqBinding" bindingConfiguration="netMsmqBinding"
contract="WCF_ServiceSample.WCF_Service" />
</service>
</services>
</system.serviceModel>
以下是我通过wcf客户端运行服务时出现的错误:
错误:无法从中获取元数据 http://localhost:9011/WCF_Service.svc如果这是Windows(R) 请访问您的Communication Foundation服务 检查您是否已在指定的位置启用元数据发布 地址。有关启用元数据发布的帮助,请参阅 MSDN文档在 http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata交流 错误URI:http://localhost:9011/WCF_Service.svc元数据包含一个 无法解决的参考: &#39; http://localhost:9011/WCF_Service.svc&#39 ;.服务器没有提供 有意义的答复这可能是由合同不匹配造成的,a 过早会话关闭或内部服务器错误.HTTP GET错误 URI:http://localhost:9011/WCF_Service.svc出错了 下载&#39; http://localhost:9011/WCF_Service.svc&#39;。请求
失败并显示错误消息: - &#39; /&#39;中的服务器错误应用
无法找到与scheme net.msmq匹配的基地址 绑定NetMsmqBinding的端点。注册的基地址方案 是[http]。描述:期间发生了未处理的异常 执行当前的Web请求。请查看堆栈跟踪 有关错误及其来源的更多信息 代码。
这是我在添加服务引用时遇到的错误 - &gt; net.msmq://localhost/WCF_Service.svc 然后我按&#34;去&#34;
无法识别URI前缀。 MetadataExchangeClient实例 无法初始化,因为没有绑定可用于方案 &#39; net.msmq&#39 ;.您可以在构造函数中提供Binding,也可以指定 configurationName。参数名称:scheme如果定义了服务 当前的解决方案,尝试构建解决方案并添加服务 再次参考。
答案 0 :(得分:1)
添加mex绑定,因为这将允许您添加代理引用,然后您可以使用net.msmq绑定来执行操作。
https://msdn.microsoft.com/en-us/library/aa967390(v=vs.110).aspx