1

我有一个托管在我根据本手册开发的托管 Windows 服务中的 WCF 服务。在 App.config 我指定了以下内容:

 <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 操作引起的。

我究竟做错了什么?

4

1 回答 1

0

我通过打开服务的入站端口来修复它:

  • 通过单击开始按钮 打开 Windows 防火墙,然后单击控制面板。在搜索框中,键入防火墙,然后单击 Windows 防火墙。
  • 在左窗格中,单击高级设置。如果系统提示您输入管理员密码或确认,请键入密码或提供确认。
  • 在具有高级安全性的 Windows 防火墙对话框中,在左窗格中单击入站规则,然后在右窗格中单击新建规则。
  • 按照新建入站规则向导中的说明进行操作(在此向导的“协议和端口”步骤中选择 Tcp)。
于 2013-04-11T09:30:09.207 回答