1
我有一個託管在託管Windows服務中的WCF服務,該服務是根據this手冊開發的。在App.config中我指定了以下內容:託管在託管Windows服務中的WCF服務無法從另一臺計算機訪問
<service name="Inpas.Unipos.LicenseManager.SamService.Service"
behaviorConfiguration="SamServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/SamService/service"/>
</baseAddresses>
</host>
<endpoint address=""
binding="wsHttpBinding"
contract="Inpas.Unipos.LicenseManager.SamService.IService" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
在客戶我連接到這種方式服務:
public void ConnectToService(string host, string port)
{
var binding = new WSHttpBinding();
var endpoint = new EndpointAddress(string.Format("http://{0}:{1}/SamService/service", host, port));
var channelFactory = new ChannelFactory<IService>(binding, endpoint);
_client = channelFactory.CreateChannel();
_client.Get2X2();
}
在本地機器上它工作正常,但如果我嘗試連接到從服務另一臺機器 - 我得到一個異常:
EndpointNotFoundException 消息:有沒有終點在http://10.xx.xx.xx:8000/SamService/service是可以接受的消息聽。這通常是由不正確的地址或SOAP操作引起的。
我在做什麼錯?
您是否能夠從另一個盒子中看到服務IE? – Dhawalk 2013-04-10 16:05:51
@Dhawalk什麼是盒子?如何檢查? – Zharro 2013-04-10 16:35:22
您是否在其他機器上使用'http:// localhost:8000/SamService/service'作爲**服務**的地址?如果是這樣,您需要將地址更改爲機器名稱(或域名)(例如http://www.mydomain.com/「 - localhost僅指運行程序的計算機。 – Tim 2013-04-10 17:57:51