我对如何暴露WCF端点有些困惑暴露net.tcp端点
我有一个tcp端点和一个mex tcp端点。
<service name="MessageReaderService.MessageReaderService">
<endpoint name="NetTcpReaderService"
address="ReaderService"
binding="netTcpBinding" bindingConfiguration=""
contract="Contracts.IMessageReaderService" />
<endpoint name="netTcpMex"
address="mex"
binding="mexTcpBinding" bindingConfiguration=""
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8082" />
</baseAddresses>
</host>
</service>
当我尝试在服务主机我得到下面的异常运行此:
合同名称“IMetadataExchange接口”无法通过该服务MessageReaderService实现合同 的列表中找到。将ServiceMetadataBehavior添加到
配置文件或直接添加到ServiceHost以启用对此合同的支持。
所以我从这个错误得出结论,我需要添加一个服务行为来公开元数据。
所以我添加的行为:
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
</behavior>
但后来我得到一个不同的错误:
的ServiceMetadataBehavior的HttpGetEnabled属性设置为true,并且 HttpGetUrl属性是相对地址,但没有http基地址。 提供一个http基地址或将HttpGetUrl设置为一个绝对地址。
- 所以现在我有实际添加另一个端点(HTTP)暴露在mexhttpbinding元数据?
- 有没有一种简单的方法通过tcp公开端点?