我在本地计算机上运行了WCF服务
所有主题都运行正常
问题
如果我可以在本地计算机浏览器上调用此WCF
服务
为什么它在其他机器上不可用
我的尝试:
localhost
:port
在另一台机器上我用我的WCF
服务正在运行的机器的ip替换了本地主机,但它无法正常工作App.config
我将baseaddress
更改为localhost
,从getJson
更改为机器IP,但它无法正常工作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测试客户端
浏览器
答案 0 :(得分:2)
可能是防火墙正在停止服务呼叫。在托管WCF的计算机上的端口8733上打开入站连接。如果是Windows,请打开“高级安全Windows防火墙”对话框,在左窗格中单击“入站规则”,然后在右窗格中单击“新建规则”并选择“端口”选项。