我有一个Service Application,它有以下web.config文件:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<standardEndpoints>
</standardEndpoints>
<bindings>
</bindings>
<services>
<service behaviorConfiguration="metadatabehaviour" name="WCF_Service.HistorianService">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration=""
contract="WCF_Service.IHistorianCollectorService" />
<endpoint address="net.tcp://localhost:8081/mex" binding="mexTcpBinding"
contract="IMetadataExchange" />
<endpoint address="net.tcp://localhost:8081" binding="netTcpBinding"
contract="WCF_Service.IHistorianCollectorService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="metadatabehaviour">
<serviceMetadata httpGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="false" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
我收到以下错误:无法添加服务。可能无法访问服务元数据。确保您的服务正在运行并公开元数据。
如果我只是实现&#34; basicHttpBinding&#34;我可以成功运行该服务。但是只要我介绍一个&#34; netTcp&#34;绑定,我开始得到这个错误。我已经改变了“mex&#39;绑定到&#39; mexTcpBinding&#39;但仍然存在错误。 我试过切换相关属性。知道如何纠正这个错误吗?
答案 0 :(得分:0)
您似乎确实禁用了元数据交换:
<serviceMetadata httpGetEnabled="false" />
应该设置为true!
答案 1 :(得分:0)
我找到了解决方案。我的net.tcp端口号为'0'。我不知道这是可能的。将它改为808就可以了。