从LAN中的另一台计算机访问我的WCF服务

时间:2013-10-28 03:18:57

标签: c# wcf

我一直在寻找解决问题的方法,尝试了各种建议,但到目前为止还没有一个对我有用。

我可以在本地完全访问WCF服务,但似乎无法从普通LAN网络中的另一台计算机访问它。

注意:我不是WCF的专家,但在研究方面做得很好。我尝试了不同的绑定,netTcpBinding对我不起作用,因为我得到了不支持的错误。

另外,我的防火墙已关闭,所以我很确定它不是防火墙问题,我是Visual Studio的内置Web服务器,我不知道如何通过IIS托管它,或者在哪里从那开始。

<system.serviceModel>
<services>
  <service name="WCFService.TorrentService">
    <endpoint contract="WCFService.ITorrentService"
              address="TorrentService"
              binding="basicHttpBinding">
    </endpoint>
    <endpoint address="TorrentService/MEX/"
              binding="mexHttpBinding"
              contract="IMetadataExchange">
    </endpoint>
    <host>
      <baseAddresses>
        <add baseAddress="http://192.168.7.111:3697/TorrentService"/>
      </baseAddresses>
    </host>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior>
      <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
      <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
      <serviceDebug includeExceptionDetailInFaults="false"/>
      <useRequestHeadersForMetadataAddress>
        <defaultPorts>
          <add scheme="http" port="3697" />
        </defaultPorts>
      </useRequestHeadersForMetadataAddress>
    </behavior>
  </serviceBehaviors>
</behaviors>
<protocolMapping>
    <add binding="basicHttpBinding" scheme="https" />
</protocolMapping>    
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />

我很确定在配置文件中不应该有很多东西,因为我已经尝试了很多不同的解决方案,但到目前为止还没有一个对我有效。

当我尝试从另一台计算机访问该服务时,请执行以下操作

http://s8.postimg.org/yqps7k6f9/untitled.png
http://s8.postimg.org/yqps7k6f9/untitled.png

2 个答案:

答案 0 :(得分:1)

如果您的wcf在本地主机上工作,那么问题是与其他计算机共享。我相信您使用的是标准开发服务器或IIS Express。归档所需内容的一种方法是使用IIS Express并按照下一篇文章http://johan.driessen.se/posts/Accessing-an-IIS-Express-site-from-a-remote-computer进行操作。

一旦您为IIS Express进行了所有必要的设置并确保您的机器安全,我相信您将获得对wcf服务的评估。但尝试两种方法:使用IP地址和计算机名称!

答案 1 :(得分:-2)

请启动您的项目,然后从另一台计算机访问。在从另一台计算机访问主机服务之前,主机服务应该正在运行。