当前位置: 首页 > 编程语言 > C#

请求通道在等待回复时超时分享

时间:2023-04-10 17:10:27 C#

C#学习教程:请求通道在等待回复时超时该程序被大约200个客户端使用,每个客户端以大约5-20个请求/分钟的速度发送。查看错误日志我经常得到:Requestchanneltimedoutwhilewaitingforreplyafter00:00:59.9989999Requestslikethis:ClientServiceClient=newClientService();客户端.打开();Client.updateOnline(userID);客户端.关闭();这是app.config上的“多次调用”,每天大约有200-800人失败。大约n-1就可以了。我很困惑问题是什么。查看服务器统计数据,它几乎不费吹灰之力——每个请求的处理时间不到2秒。它发送的数据包括“int”或“非常小的字符串”-所以,这不是由于大小,如果是-应该有一致的失败..建议?您的请求似乎在处理之前在服务器上排队,然后开始超时。您可以在此处尝试一些操作以了解实际情况1)尝试在WCF服务中进行限制,例如:尝试增加并发会话。查看WCFThrottling2)尝试使用PerCall而不是Sessions以确保没有会话。您可以在您的界面上执行以下操作以删除会话[ServiceContract(Namespace="YOURNAMESPACE",SessionMode=SessionMode.NotAllowed)]并且您的合同类实现这些接口ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCall)]和....您应该启用跟踪以准确查看发生了什么。尝试向服务和客户端添加超时值:检查此性能计数器-ASP.NETRequestsQueued。Web应用程序可以承载许多网页和服务。默认情况下,IIS每个CPU核心仅处理12个并发请求。这意味着即使你的服务很快但其他页面/服务很慢,你的请求也必须在队列中等待才能被执行。排队的ASP.NET请求数应为零或接近于零。请参阅MSDN上的ASP.NET性能计数器。以上是C#学习教程:请求通道分享的所有内容在等待回复时超时。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: