ChannelFactory.CreateChannel和代理实例化在WCF中很慢

时间:2009-04-01 11:51:31

标签: wcf

我有一个客户端 - 服务器应用程序,其中客户端使用WCF与服务器通信(WCF在客户端和服务器中都使用)。 我的问题是,以下列方式在客户端实例化自动生成的代理:

 new Service1Client() 
持续15.xxx秒。 我试图解决这个问题,并得出以下结果:

1)在其他计算机上编译和运行相同的代码,以相同的方式结束(总是15.xxx秒)。

2)使用ChannelFactory.CreateChannel< IService1 >()实例化代理 没有帮助(它给出了相同的结果)。

我的猜测是,无论何时频道工厂创建一个频道,它都会尝试执行15秒超时的操作,当它失败时,它会继续创建。

顺便说一下,我使用的是没有SP1的.Net 3.5,并且无法升级到SP1 :(

提前致谢

3 个答案:

答案 0 :(得分:1)

即使它已经过时,但对其他人来说也可能有用。问题可能出在DNS解析问题上,可能会在SP1中解决。因此,只有在使用主机名或使用指定的IP地址时,才能检查是否发生了这种情况。

答案 1 :(得分:0)

我以前见过这个,在寻找代理服务器的时候。检查您的WinINET(Internet Explorer)代理设置。


我认为“代理服务器”的具体原因是需要15秒。对于网络超时来说,15s听起来像是一个很好的整数。

答案 2 :(得分:0)

即使这是非常古老的信息我也发现了这个问题,虽然我在第一次调用服务客户端上的方法时遇到了7秒的延迟,但是我(在我的环境中)跟踪它到Internet Explorer设置如上所述,但在我的情况下,它不是启用代理,而是自动检测设置。

连接 - &gt;已启用Lan设置和自动检测设置。

我玩了machine.config和app.config并设置了

<runtime>
  <generatePublisherEvidence enabled="false"/>
</runtime>

这也没有什么区别。

我在这里找到了这个答案,并认为我会提供更多信息,以防将来其他人遇到类似的事情。

(使用.Net 4 WCF服务)