因此,這裏是我的App.config:無法從遠程計算機獲取元數據,但當地是好的
<?xml version="1.0"?>
<configuration>
<runtime>
</runtime>
<system.serviceModel>
<diagnostics performanceCounters="Default" />
<bindings />
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<behaviors>
<endpointBehaviors>
<behavior name="CrossDomainServiceBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="AService.AServBehavior">
<serviceMetadata httpGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="MyService.MyServiceBehavior" name="MyService.MyServ">
<endpoint address="MyService" behaviorConfiguration="" binding="netTcpBinding" contract="AService.IAServ" isSystemEndpoint="false" />
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
正如你可以看到有什麼特別的。我只想創建帶有tcp綁定和傳輸元數據信息的簡單服務。我使用basicHttpBinding
與同一個成功,並且一切都很順利。 這裏是與baseaddress創建服務實例代碼:
Console.WriteLine("net.tcp://" + _bindAddress + "/");
ServiceHost myserviceHost = new ServiceHost(typeof(MyService), new Uri(String.Concat("net.tcp://", _bindAddress, "/")));
myserviceHost.Open();
_bindAddress
是來自於定製服務配置XML文件的字符串。我試圖將服務綁定到IP地址爲172.19.0.102:8733
的內部網絡接口。然後,我嘗試使用WcfTestClient服務的機器上的地址127.0.0.1:8733
獲取服務元數據,並且每個都沒問題。但後來我試圖通過Internet在目標遠程機器上獲取服務的元數據,我得到了TCP error with code 10051
。 我的目標是通過Internet爲任何客戶端提供服務併爲其發佈元數據。有防火牆和其他網絡的東西沒有問題。似乎我需要進行一些配置編輯,以便與所有人共享服務共享元數據。 在此先感謝!
POST編輯:
這是我的tryings:被配置爲在172.19.0.102:8733
結合 1)服務。 答:WCF測試客戶端嘗試從地址net.tcp://127.0.0.1:8733/
獲取託管機器上的元數據失敗,並返回TCP error code 10061
。 B.在同一臺計算機上,WCF客戶端試圖從net.tcp://172.19.0.102:8733
獲取元數據,它工作正常。 C. WCF測試客戶端試圖從地址net.tcp://192.168.1.2:8733/
(它的服務的機器IP地址)在局域網中的另一臺機器上獲取元數據給出錯誤TCP error code 10061
。
我爲該服務設置ASP .NET(udpate服務引用)然後將此網站上傳到主機。然後在hoster機器上,我配置了web.config地址,指向服務託管的靜態IP地址,然後再次出現此錯誤。我知道B類網絡地址不會被客戶端訪問,所以我編輯配置文件直接連接到服務的機器。即使我嘗試從幾乎相同的服務(使用basicHttpBinding)獲取元數據配置爲綁定在172.19.0.102:8732它工作正常。 – kseen
對於什麼是可訪問的,什麼不可以以及您的應用程序如何部署,我有點迷失。那麼你能從環回和真實地址本地訪問net.tcp服務(在託管機器上)嗎?您可以從同一網絡中的其他機器訪問該服務嗎?它是否與真實客戶端而不是測試客戶端一起工作?您可以診斷託管客戶端計算機上的TCP流量以查看詳細信息。通信中是否包含任何網絡設備?你能簡單地telnet到端口嗎?它看起來更像是診斷網絡問題。 –
好拉迪斯拉夫請看我的帖子編輯,以獲得額外的測試結果。 – kseen