繁体   English   中英

如何在客户端缓慢的互联网成为asp.net服务器超时异常的原因?

[英]How can a slow internet on client side be a reason for server time out exception in asp.net?

我有一个.Net应用程序启动并运行。

我们昨天有一个波动的联系。 在这种情况下进行测试时,我们收到了多个服务器超时例外电子邮件,如下所示。

服务器超时

Type : System.Web.HttpException, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
Message : Request timed out.
Source :
Help link :
WebEventCode : 3001
ErrorCode : -2147467259
Data : System.Collections.ListDictionaryInternal
TargetSite :
HResult : -2147467259
Stack Trace : The stack trace is unavailable.
Additional Info:

重要提示:通过在更新面板中放置的按钮执行ajax发布时发生上述异常。

我的问题是为什么客户端缓慢的互联网会引发这样的服务器超时异常?

服务器超时异常是否与服务器无法在HttpRuntime设置中提及的基础时间内执行请求的情况有关? 可能是由于一些冗长的操作或一些长时间的数据库执行,这需要比在HttpRuntime下设置的时间更长的时间。

如果服务器由于客户端波动互联网而无法连接到客户端,那么我们昨天会提出客户端断开连接异常。 但我无法断定此服务器超时异常的原因。

我已经知道增加执行超时将解决问题,但我必须提供技术解释,说明为什么会引发服务器超时的这种异常。

我最好的猜测是,ajax请求将与服务器进行一些持续的通信以执行单个请求服务器,如果由于客户端的网络不良而没有收到一些所需的进一步通信消息,则会引发超时异常。 我在互联网上搜索同样的东西以支持我的猜测但是徒劳无功。

此外,为了提供环境细节,还有一个负载均衡器可以满足要求。

任何帮助将受到高度赞赏。

这是因为(当你写的时候)客户端到服务器的连接很慢,所以如果服务器(或客户端)向这个服务器发送数据,连接就无法处理它,所以你得到超时错误,因为数据不能在规定的时间内转移。

您还写道,这是由发送Ajax请求引起的,因此可能尝试在Web配置文件(web.config)中增加execusion超时

<httpRuntime executionTimeout = "number(in seconds)"/>

在此输入图像描述

有关executionTimeout更多信息,请executionTimeout 此处此处的Ajax请求

首先,我认为导致此错误的原因是因为与远程服务器连接的应用程序请求所需的执行时间超过了当前设置的ASP.NET请求执行超时值。 根据MSDN异常文档 ,默认值设置为110秒,因为它被标记为:

ExecutionTimeout属性指示在ASP.NET自动关闭之前允许执行请求的最大秒数。

因此基于事件代码3001的错误细节发生是因为在请求的超时期间没有接收到响应。 您可以使用IIS疑难解答失败的请求机制来确定问题,就像从ASP.NET应用程序调用时的任何性能/死锁一样。

其次,它与用户的互联网连接问题无关,否则您会因连接关闭或保持活动失败而获得异常。 有关详细信息,请参阅此文 浏览器将等待60分钟(这是服务器不会回答任何请求的很长一段时间)以便服务器响应。

在任何情况下,当浏览器放弃任何请求时,它将关闭套接字,您将从浏览器获得一个错误页面。 你没有得到任何与服务器端相关的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM