问题描述
服务托管在WinForm中,在局域网内(换过交换机等,网络问题已经排除)。
我在我自己机器中客户端调用服务正常(服务中没有任何逻辑,第一次调用时大概需要500ms,之后调用一般在10ms内,而过几分钟后又会再第一次会500ms左右。),而在其他开发机器中同样是调用本机测试情况差别很大(第一次调用需要20000ms,之后也一般在50ms左右,并且会经常出现调用达到20000ms左右)。然后,我把我机器作为服务端,局域网中其他机器作为客户端情况一样很慢。
经调试发现在调用具体的接口处很慢,此时没有真正进入到服务端的代码处。
望各位有经验的朋友给些提示,谢谢!
谁的第一次都这样吧,哈哈.
第一次需要加载各种dll,需要作很多准备才能开始的.不要轻率.
请看完我写的描述。
看看C#的运行原理,C#代码在编译后并非是机器码,而是在运行时再次解释编译过后的代码,然后缓存起来,下次调用直接走缓存的,原理是这样,所以第一次是很慢的
请看完我写的描述。
创建ChannelFactory的开销很高,建议检查一下客户端调用WCF时ChannelFactory是否被缓存。
你说的是也是一个重要原因。后来经过验证,的确是其中一台服务器系统可能有问题(具体问题不详,后来做事务时也遇到类似问题,换着其他机器基本正常。)
感谢各位的分析。
useDefaultWebProxy="false" 就行了把代理取消
useDefaultWebProxy 设为false即可.
如果是net.tcp协议的呢,该怎么设置呢,TcpBinding中貌似没有这个属性啊