我在配置WCF服務時遇到了一些困難。我的要求是它公開了一個basicHttpBinding端點以及一個netTcpBinding端點。我的一些客戶端是.NET 2.0,需要能夠通過WSDL.exe生成代理。WCF基本的HTTP和NetTCP綁定,通過Mex暴露
它似乎工作的大部分 - 但是當我試圖獲得WSDL,它不合作。在瀏覽器中,它給了我一些SOAP XML標籤,但絕對不是完整的WSDL。 WSDL.exe給了我一系列的錯誤:
錯誤:處理'http://1.2.3.4:9877/MyService/basicHttp?wsdl'時出錯。
- 該文件被理解,但它無法處理。
- WSDL文檔包含無法解析的鏈接。
- 下載'http:// localhost:9877/MyService/basicHttp?wsdl = wsdl0'時出錯。
- 底層連接已關閉:無法連接到遠程服務器。
這是我的主機配置。這裏有什麼東西會跳出來嗎?
<system.serviceModel>
<services>
<service behaviorConfiguration="MyServiceBehavior" name="MyRunner">
<endpoint address="netTcp" binding="netTcpBinding" bindingConfiguration="" contract="IMyRunner">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="basicHttp" binding="basicHttpBinding" bindingConfiguration="" contract="IMyRunner">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="" contract="IMetadataExchange" />
<endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:9876/MyService/netTcp" />
<add baseAddress="http://localhost:9877/MyService/basicHttp" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
請問您的請求是否需要.svc,例如'http://1.2.3.4:9876/MyService/basicHttp.svc?wsdl' – 2011-01-25 02:06:15
@Chris O:我不這麼認爲 - 服務本身工作正常罰款沒有。如果這有所作爲,我將託管在Windows服務中,而不是IIS。 – 2011-01-25 03:11:19