无法从我的本地网络外部连接到WCF服务

时间:2017-07-07 18:41:14

标签: c# wcf

我正在学习编写WCF服务,并且我正在阅读我正在阅读的书籍中逐步编写我的简单服务。服务在我的PC和连接到LOCAL网络的每台设备上都能正常运行。当我尝试从本地网络的“外部”连接时,如果看不到服务(通过我写的客户端应用程序和浏览器(MEX))。)

我的主机app.config:

    <system.serviceModel>

      <services>
       <service name="WCF_1_MagicEightBallService.MagicEightBallService"
                behaviorConfiguration="MagicEightBallServiceMEXBehavior">

         <endpoint address=""
                   binding="basicHttpBinding"
                   contract="WCF_1_MagicEightBallService.IMagicEightBall">
         </endpoint>

         <endpoint address="mex"
                   binding="mexHttpBinding"
                   contract="IMetadataExchange">
         </endpoint>

         <host>
           <baseAddresses>
             <add baseAddress="http://[my ip]:8080/MagicEightBallService"/>
           </baseAddresses>
         </host>

       </service>
      </services>

      <behaviors>
        <serviceBehaviors>
          <behavior name="MagicEightBallServiceMEXBehavior">
            <serviceMetadata httpGetEnabled="true"/>
            <useRequestHeadersForMetadataAddress/>
          </behavior>
        </serviceBehaviors>
      </behaviors>

  </system.serviceModel>

我的ip是我的外部ip,但我尝试过使用ip而不使用wifi路由器和不同的端口。

1 个答案:

答案 0 :(得分:0)

因此,正如Cameron在评论中提到的,问题在于ISP阻止了我的端口。这个答案可能有点偏离主题,但对于有类似问题的每个人,我在这里做了什么:

  1. 使用基于控制台的免费工具&#34; nmap&#34;扫描开放端口with command:
    nmap target.hostname.com
  2. 然后我用&#34;未知&#34;重新检查所有端口。使用http://www.yougetsignal.com/tools/open-ports/服务(当然,您可以使用任何其他网站)。它们都是打开的并且使用Windows命令:
    netstat -aon | find / i&#34; listen&#34; | find&#34; port&#34;
    我得到了正在使用它们的应用程序的PID。
  3. 我选择了我不需要运行的app使用的端口,关闭它并使用该端口来托管我的WCF服务的网站的IIS服务器绑定。
  4. 它工作正常,我可以通过外部IP地址进行远程访问。