首页 新闻 会员 周边

WCF服务第一次调用慢的问题求助

0
悬赏园豆:50 [已关闭问题] 关闭于 2012-06-20 22:44

问题描述

服务托管在WinForm中,在局域网内(换过交换机等,网络问题已经排除)。

我在我自己机器中客户端调用服务正常(服务中没有任何逻辑,第一次调用时大概需要500ms,之后调用一般在10ms内,而过几分钟后又会再第一次会500ms左右。),而在其他开发机器中同样是调用本机测试情况差别很大(第一次调用需要20000ms,之后也一般在50ms左右,并且会经常出现调用达到20000ms左右)。然后,我把我机器作为服务端,局域网中其他机器作为客户端情况一样很慢。

经调试发现在调用具体的接口处很慢,此时没有真正进入到服务端的代码处。

望各位有经验的朋友给些提示,谢谢!

凌风的主页 凌风 | 初学一级 | 园豆:53
提问于:2012-05-05 14:35
< >
分享
所有回答(6)
0

谁的第一次都这样吧,哈哈.

第一次需要加载各种dll,需要作很多准备才能开始的.不要轻率.

go on coding | 园豆:343 (菜鸟二级) | 2012-05-05 19:04

请看完我写的描述。

支持(0) 反对(0) 凌风 | 园豆:53 (初学一级) | 2012-05-06 16:03
0

看看C#的运行原理,C#代码在编译后并非是机器码,而是在运行时再次解释编译过后的代码,然后缓存起来,下次调用直接走缓存的,原理是这样,所以第一次是很慢的

az235 | 园豆:8483 (大侠五级) | 2012-05-06 10:15

请看完我写的描述。

支持(0) 反对(1) 凌风 | 园豆:53 (初学一级) | 2012-05-06 16:03
0

创建ChannelFactory的开销很高,建议检查一下客户端调用WCF时ChannelFactory是否被缓存。

dudu | 园豆:30994 (高人七级) | 2012-05-07 13:13

你说的是也是一个重要原因。后来经过验证,的确是其中一台服务器系统可能有问题(具体问题不详,后来做事务时也遇到类似问题,换着其他机器基本正常。)

 

感谢各位的分析。

支持(0) 反对(0) 凌风 | 园豆:53 (初学一级) | 2012-06-20 22:42
0

useDefaultWebProxy="false" 就行了把代理取消

pigwing | 园豆:168 (初学一级) | 2013-01-28 15:21
0

useDefaultWebProxy 设为false即可.

agage | 园豆:206 (菜鸟二级) | 2015-07-24 19:30
0

如果是net.tcp协议的呢,该怎么设置呢,TcpBinding中貌似没有这个属性啊

拜门求学 | 园豆:159 (初学一级) | 2016-03-14 14:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册