0

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

一切主题都可以正常运行

问题是

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

我尝试过的:

  1. 我的服务地址是localhostport在另一台机器上,我用运行我的服务的机器的 ip 替换了本地主机,WCF但它不起作用
  2. 在我的App.config我改变了baseaddress你可以在下面看到localhost的机器 ip 并且它也没有工作
  3. 我创建了一个 Web 应用程序并使用它调用我的服务getJson,它在我的本地机器浏览器上运行,而不是在任何其他机器上它加载整个页面并给我错误getJson

我在这里想念什么???我不知道

IService1.cs

[OperationContract]
[WebGet(UriTemplate = "GetName/{name}",
        ResponseFormat = WebMessageFormat.Json)]
List<Eval> GetName(string name);

应用程序配置

<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>

WCF 测试客户端

在此处输入图像描述

浏览器 在此处输入图像描述

4

1 回答 1

2

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

于 2013-11-09T01:07:45.867 回答