1

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

我可以在本地完美地访问 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

4

2 回答 2

1

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

一旦你为 IIS Express 和你的机器上的安全做了所有必要的设置,我相信你会得到 wcf 服务的评估。但尝试两种方法:使用 IP 地址和计算机名!!!

于 2013-10-28T04:08:19.340 回答
-2

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

于 2015-04-15T09:56:30.287 回答