无法通过同一网络中的其他计算机访问我的WCF服务
我编写了最简单的wcf服务,它只有一个方法无法通过同一网络中的其他计算机访问我的WCF服务,wcf,Wcf,我编写了最简单的wcf服务,它只有一个方法 // return a+b int ICalc::add(int a, int b) 当我试图通过本地机器访问服务时,我得到的结果没有问题。 但是尝试从其他机器访问我无法获得服务 我试图定义 <security mode="None"/> 您忘记了客户端配置文件中的端口: address="http://192.168.1.117:50025/ServiceProxy.svc" 编辑:如果仍然失败,请使用浏览器直接从客户端计算机浏览
// return a+b
int ICalc::add(int a, int b)
当我试图通过本地机器访问服务时,我得到的结果没有问题。
但是尝试从其他机器访问我无法获得服务
我试图定义
<security mode="None"/>
您忘记了客户端配置文件中的端口:
address="http://192.168.1.117:50025/ServiceProxy.svc"
编辑:如果仍然失败,请使用浏览器直接从客户端计算机浏览到地址
:您得到了什么
另外,您确切地得到了什么错误?我在客户机配置文件中添加了端口-但它仍然没有帮助,我仍然无法打开服务 (右开门失败()
)发布
web.config
文件(服务器和客户端)的相关部分,我们将尝试查看您是否在那里做错了什么。可能是重复的,将其作为注释发布到我的答案,而不是新答案。因为他在IIS/WAS中托管,定义的基址不相关-IIS中的虚拟目录将指定要绑定到的地址…所以问题是IIS中的虚拟目录?我怎么处理?你认为我需要做什么/检查?@Yan还不确定-当你直接浏览到地址时会发生什么?从客户端调用WCF时会出现什么错误?直接浏览到某个网页(default.htm)并给出正确的页面。使用WFC客户端调用时出现异常“没有端点正在侦听,无法接受消息…”@Yan您需要将其正确托管在IIS上,是的。。。我不知道你的服务器是如何配置的,所以很难说到底是什么地方出了问题。
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IServiceProxy" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
allowCookies="false" >
<security mode="None"/>
<readerQuotas maxDepth="32" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="2147483647" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="http://192.168.1.117/ServiceProxy.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IServiceProxy"
contract="ServiceReference1.IServiceProxy" name="WSHttpBinding_IServiceProxy">
<identity>
<dns value="192.168.1.117" />
</identity>
</endpoint>
</client>
</system.serviceModel>
address="http://192.168.1.117:50025/ServiceProxy.svc"
ServiceProxyClient r = new ServiceProxyClient();
r.Open();