我有一个.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:
Run Code Online (Sandbox Code Playgroud)
重要提示:通过在更新面板中放置的按钮执行ajax发布时发生上述异常.
我的问题是为什么客户端缓慢的互联网会引发这样的服务器超时异常?
服务器超时异常是否与服务器无法在HttpRuntime设置中提及的基础时间内执行请求的情况有关?可能是由于一些冗长的操作或一些长时间的数据库执行,这需要比在HttpRuntime下设置的时间更长的时间.
如果服务器由于客户端波动互联网而无法连接到客户端,那么我们昨天会提出客户端断开连接异常.但我无法断定此服务器超时异常的原因.
我已经知道增加执行超时将解决问题,但我必须提供技术解释,说明为什么会引发服务器超时的这种异常.
我最好的猜测是,ajax请求将与服务器进行一些持续的通信以执行单个请求服务器,如果由于客户端的网络不良而没有收到一些所需的进一步通信消息,则会引发超时异常.我在互联网上搜索同样的东西以支持我的猜测但是徒劳无功.
此外,为了提供环境细节,还有一个负载均衡器可以满足要求.
任何帮助将受到高度赞赏.
几年前我已经整合了PayPal支付标准以获得付款.
我的申请是在Asp.Net.目前处于沙盒模式.
我的网站上有一个Pay Now按钮,PostBackURL到PayPal网站,提供所有必需的参数.当用户点击按钮时,它会重定向到PayPal,用户可以通过他的帐户或借记卡/信用卡付款.成功交易后,用户将被发送回我的应用程序.当用户回到我的应用程序时,我在Request.Form集合中获得了诸如"payment_status"之类的各种参数.我验证响应并相应地显示成功/失败消息.
当用户在桌面上的浏览器上时,上述流程正常工作.
但是,当用户使用移动设备并使用移动浏览器时.用户登陆PayPal移动友好页面.用户使用他的帐户付款.然后显示成功消息.但是当用户被重定向到我的应用程序时,我在Request.Form集合中没有获得任何值.由于这个原因,我无法验证PayPal的响应.
此外,我了解到,在桌面浏览器上,PayPal通过POST方法将响应返回到我的网站,因此Request.Form包含数据.
然而,在移动浏览器的情况下,PayPal通过GET方法返回响应,因此Request.Form不包含任何数据.
为什么PayPal通过GET返回响应?在这种情况下,即使在查询字符串中数据也不可用,那么如何验证响应,付款是否成功?
我已阅读文档,并说它没有针对移动PayPal支付标准的其他特定设置.
我不想迁移到快速结账或任何其他配置.
此外,我搜索了许多与SO相关的线程,并没有找到任何适合我需要的解决方案因此作为一个新问题.