我定义了一项服务。 App.config中的服务模型节点是:
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="NetTcpBindingConfiguration">
<security mode="None" />
</binding>
</netTcpBinding>
</bindings>
<services>
<service name="Products.ProductsServiceImpl">
<endpoint address="net.tcp://localhost:8080/Whatever" binding="netTcpBinding"
bindingConfiguration="NetTcpBindingConfiguration" name="NetTcpBinding_IProductsService"
contract="Products.IProductsService" />
</service>
</services>
</system.serviceModel>
但是当尝试将服务引用添加到客户端应用程序时,我运行该服务,然后我尝试使用“添加服务引用...”对话框添加服务引用,但是我找不到该服务。
如果我添加使用basicHttpBinding的端点,则可以通过“添加服务引用”对话框来本地化该服务。
我尝试添加使用mexTcpBinding的端点,但是在尝试启动服务时遇到错误,我收到一条错误消息,指出在我的服务实现的合同列表中找不到合同IMetadataExchange。
我能错过什么?
更新
使用ServiceHost类(负责启动服务的WPF应用程序的摘录)打开此服务:
var productsServiceHost = new ServiceHost(typeof(ProductsServiceImpl));
productsServiceHost.Open();
stop.IsEnabled = true;
start.IsEnabled = false;
status.Text = "Service Running";
我使用WCF库来创建服务(定义服务和合同的地方))
答案 0 :(得分:0)
知道了!
我使用了这个博客:http://debugmode.net/2010/06/16/nettcpwcfserviceinwindowservice/
这是完整的服务模型节点(App.config)
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="NetTcpBindingConfiguration">
<security mode="None" />
</binding>
</netTcpBinding>
</bindings>
<services>
<service name="Products.ProductsServiceImpl" behaviorConfiguration="metadataSupport">
<endpoint address="" binding="netTcpBinding"
bindingConfiguration="NetTcpBindingConfiguration" name="NetTcpBinding_IProductsService"
contract="Products.IProductsService" />
<endpoint name="MetaDataTcpEndpoint"
address="mex"
binding="mexTcpBinding"
contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8080/Whatever" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="metadataSupport">
<serviceMetadata httpGetEnabled="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
将地址放入“添加服务引用...”对话框时,它应为:
net.tcp://localhost:8080/Whatever/mex
虽然如果您已经开始提供服务,但在“添加服务参考...”中按“执行”时,如果您没有
,它会为您添加mex文本。安全模式=&#34;无&#34;是有用的从网络的其他机器访问服务
快乐的编码。