2012-09-25 52 views
2

我有具有以下web.config文件中的服務應用程序:使用net tcp綁定託管WCF服務。錯誤:服務元數據可能無法訪問

<?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> 

而且我收到以下錯誤:無法添加服務。服務元數據可能無法訪問。確保您的服務正在運行並展示元數據。

我能成功運行的服務,如果我只是貫徹「basicHttpBinding的」,但只要我介紹一個「netTcp」結合,我開始收到此錯誤。我已將'mex'綁定更改爲'mexTcpBinding',但錯誤仍然存​​在。 我試過切換相關的屬性。任何想法如何我可以糾正這個錯誤?

+0

如果只添加第二個net.tcp端點,您可以運行該服務嗎? –

+0

@ LadislavMrnka-不,即使只有net.tcp端點,我也無法運行該服務。 – Kartik

回答

0

我找到了解決方案。我的net.tcp端口號值爲'0'。我不知道這是可能的。改爲808做到了。

0

看來你確實禁用元數據交換:

<serviceMetadata httpGetEnabled="false" /> 

應設置爲true!

+0

@ Vitaliy-如果我只託管HTTP端點,情況會如此。如果我必須使用net.tcp綁定,那麼該屬性必須是false。無論如何,我仍然試圖說服它,但無濟於事。 – Kartik

+0

您是否嘗試過爲mex指定不同的端口? – Vitaliy

+0

@ Vitaliy-是的。還是行不通。 – Kartik