Windows服务中的WCF托管(网络服务)

时间:2012-02-09 23:27:57

标签: c# wcf service

  1. WCF服务
  2. Windows服务中的WCF服务托管
  3. WinService登录为网络服务
  4. 主机应用配置:

    <service name="StudyingControllerService.ControllerService">
            <host>
              <baseAddresses>
                <add baseAddress="http://IP:PORT/ControllerService.svc"/>
              </baseAddresses>
            </host>
            <endpoint address=""
                      binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IControllerService"
                      contract="StudyingControllerService.IControllerService" />
          </service>
    

    在本地网络中一切正常。 (本地主机) 但我想通过网络从另一台计算机访问我的服务。

    我使用另一台计算机(来自另一个地方),ping IP(winservice's)。 ping没关系。 我安装了我的客户端,并尝试连接到我的远程服务,但连接失败。 telnet也无法建立连接。

    有什么问题?

    防火墙已断开连接。 (两边)

    在客户端,telnet无法打开与IP PORT的连接

3 个答案:

答案 0 :(得分:1)

Windows服务或WCF没有问题。我的互联网服务提供商遇到了问题。

它阻止了使用我服务的端口。所以,我要求管理员打开端口。现在一切都还好。

谢谢大家的回答。

答案 1 :(得分:0)

我有类似的问题。它只是在Windows防火墙上打开PORT。

为了测试是否可行,我关闭了防火墙服务。

希望有所帮助!

答案 2 :(得分:0)

我会尝试在配置文件中更改您的基地址,如下所示:

<service name="StudyingControllerService.ControllerService">
  <host>
    <baseAddresses>
      <add baseAddress="http://IP:PORT"/>
    </baseAddresses>
  </host>
  <endpoint address="ControllerService.svc"
            binding="basicHttpBinding"
            bindingConfiguration="BasicHttpBinding_IControllerService"
            contract="StudyingControllerService.IControllerService" />
</service>

我推荐这个的原因是基地址用于允许相对于基地址添加端点 - 将端点放在基址中可能会导致问题。

至少要尝试一下 - 几分钟的编辑,你会得到一个或另一个答案。