积极答复者
WCF端口与防火墙设置的问题

问题
-
答案
全部回复
-
关于WCF服务启动缓慢的问题, 请问你的WCF服务是self-host还是IIS?
一些相关讨论: -
这个TimeOut异常有很多原因。
处理时间过久,或者打开时间过久都会导致TimeOut异常。
你现在的情况是,客户端和服务端已经建立了有效的链接,
而这个Channel是正常的,如果服务端立即断掉,客户端是无法立即知道。
你可以采用一个办法,就是服务关闭前发送和消息给客户端,通知客户端。类似回调的机制。
Frank Xu Lei--谦卑若愚,好学若饥
专注于.NET平台下分布式应用系统开发和企业应用系统集成
Focus on Distributed Applications Development and EAI based on .NET
【老徐的网站】:http://www.frankxulei.com/
-
谢谢
我在XP上另搭建了一个测试服务器,发现Timeout没有再现。
仔细调查了一下,出现问题的服务器是Windows2008,其IIS上已经运行了一个站点,使用的端口为8080,和WCF服务的端口号相同。
怀疑是不是这个原因导致的,准备切换一下端口继续测试。
(在XP下如果IIS和WCF服务用同一端口号的话,根本就无法启动)
在XP下如果IIS和WCF服务用同一端口号的话无法启动的原因:http://kennyw.com/work/indigo/43 (文章第三段)
"IIS 在 Windows XP 上不支持端口共享。如果 IIS 正在运行并且 WCF 服务尝试通过相同端口来使用某个命名空间,则 WCF 服务将无法启动。IIS 和 WCF 均默认设置使用端口 80。请更改其中一个服务的端口分配或使用 IP 侦听列表将 WCF 服务分配到 IIS 未使用的网络适配器。IIS 6.0 和更高版本已经过重新设计,可以使用 HTTP 服务器 API。"
关于WCF服务与Windows2008/IIS共用一个端口的问题, 你的WCF服务是基于TCP还是HTTP? 如果是TCP, 那是不能共用端口的. 请参阅Phani_tpk于2008年12月31日8:17在以下讨论里的答复 http://social.msdn.microsoft.com/Forums/zh-CN/wcf/thread/77448cef-02a7-456e-9750-a7154648b635
-
谢谢
我在XP上另搭建了一个测试服务器,发现Timeout没有再现。
仔细调查了一下,出现问题的服务器是Windows2008,其IIS上已经运行了一个站点,使用的端口为8080,和WCF服务的端口号相同。
怀疑是不是这个原因导致的,准备切换一下端口继续测试。
(在XP下如果IIS和WCF服务用同一端口号的话,根本就无法启动)
在XP下如果IIS和WCF服务用同一端口号的话无法启动的原因:http://kennyw.com/work/indigo/43 (文章第三段)
"IIS 在 Windows XP 上不支持端口共享。如果 IIS 正在运行并且 WCF 服务尝试通过相同端口来使用某个命名空间,则 WCF 服务将无法启动。IIS 和 WCF 均默认设置使用端口 80。请更改其中一个服务的端口分配或使用 IP 侦听列表将 WCF 服务分配到 IIS 未使用的网络适配器。IIS 6.0 和更高版本已经过重新设计,可以使用 HTTP 服务器 API。"
关于WCF服务与Windows2008/IIS共用一个端口的问题, 你的WCF服务是基于TCP还是HTTP? 如果是TCP, 那是不能共用端口的. 请参阅Phani_tpk于2008年12月31日8:17在以下讨论里的答复 http://social.msdn.microsoft.com/Forums/zh-CN/wcf/thread/77448cef-02a7-456e-9750-a7154648b635
谢谢。xp下不能共享端口,明白了。
我用的是HttpBinding,2008下搭建了一个和IIS共用端口8080的测试环境,客户端不停的向WCF发送检索请求,开始是正常的。
途中将WCF服务关掉,重启,回复正常,但又经过一段时间之后果然出现了TimeoutException,从此WCF服务彻底处于不可用状态。
原因还在继续研究中....
-
-
将WCF服务关掉時有否使用close()? maxConcurrentCalls设置為何?
建议您使用WCF Trace Viewer作进一步调查.谢谢,关掉WCF服务器端的时候确实是直接关闭Console程序,这样的话Close()应该没有被调用。这样也会有问题啊。
maxConcurrentCalls这些值都设为1000,估计,应该不是这个问题。。。