在同一网络上的其他计算机上调用WCF服务不起作用

时间:2013-11-09 00:50:17

标签: c# wcf web-services rest

我在本地计算机上运行了WCF服务

所有主题都运行正常

问题

如果我可以在本地计算机浏览器上调用此WCF服务 为什么它在其他机器上不可用

我的尝试:

  1. 我的服务地址是localhostport在另一台机器上我用我的WCF服务正在运行的机器的ip替换了本地主机,但它无法正常工作
  2. 在我的App.config我将baseaddress更改为localhost,从getJson更改为机器IP,但它无法正常工作
  3. 我创建了一个Web应用程序并使用getJson调用我的服务,它在我的本地计算机浏览器上工作,而不是在任何其他计算机上加载整个页面并在[OperationContract] [WebGet(UriTemplate = "GetName/{name}", ResponseFormat = WebMessageFormat.Json)] List<Eval> GetName(string name); <上给我错误/ LI>

    我在这里失踪了什么?我不知道

    IService1.cs

    <system.web>
        <compilation debug="true"  targetFramework="4.0" />
    </system.web>
     <system.webServer>
      <modules runAllManagedModulesForAllRequests="true"/>
    </system.webServer>
    <system.serviceModel>
        <bindings>
            <webHttpBinding>
                <binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true"></binding>
            </webHttpBinding>
        </bindings>
        <services>
            <service name="WcfServiceLibrary1.Service1">
                <host>
                    <baseAddresses>
                        <add baseAddress = "http://192.168.1.5:8733/Design_Time_Addresses/WcfServiceLibrary1/Service1/" />
                    </baseAddresses>
                </host>
                <endpoint address="" binding="webHttpBinding" bindingConfiguration="webHttpBindingWithJsonP" contract="WcfServiceLibrary1.IService1" behaviorConfiguration="web">
                    <identity>
                        <dns value="localhost"/>
                    </identity>
                </endpoint>
                <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
            </service>
        </services>
        <behaviors>
            <serviceBehaviors>
                <behavior>
                    <serviceMetadata httpGetEnabled="True"/>
                    <serviceDebug includeExceptionDetailInFaults="False" />
                </behavior>
            </serviceBehaviors>
            <endpointBehaviors>
                <behavior name="web">
                    <webHttp/>
                </behavior>
            </endpointBehaviors>
        </behaviors>
    </system.serviceModel>
    

    的App.config

    {{1}}

    WCF测试客户端

    enter image description here

    浏览器 enter image description here

1 个答案:

答案 0 :(得分:2)

可能是防火墙正在停止服务呼叫。在托管WCF的计算机上的端口8733上打开入站连接。如果是Windows,请打开“高级安全Windows防火墙”对话框,在左窗格中单击“入站规则”,然后在右窗格中单击“新建规则”并选择“端口”选项。