我有一个asp.net web应用程序。它通过WCF与业务层进行通信。有一个冗长的数据库操作(花费两个小时)。这是一个通常的同步呼叫。最初我曾经习惯了与WCF超时相关的异常。对于这些例外情况,以前在UI页面中引发了异常(称为“套接字超时”)。我在服务和客户端都使用WCF绑定设置解决了这个问题。查找ASP.Net超时原因(在漫长的操作过程中)
现在,(正好)一个小时后,我在浏览器窗口中出现错误。即使我们的应用程序有一个自定义的应用程序错误页面,它也不会显示自定义错误由于在UI中没有抛出异常,我认为它可能是由于ASP.Net超时而不是WCF造成的。我也没有看到任何相关的登录事件查看器。
我可以使用哪些方法/工具来确定超时的确切原因?
它是broswer设置/ asp.net设置/ iis设置问题?
IE错误信息:您正在查找的页面当前不可用。该网站可能遇到技术问题,或者您可能需要调整浏览器设置。 注意:在底部显示“无法找到服务器或DNS错误”
注意:该功能仅在一个月内使用一次。这是管理员的功能。所以花两个小时对我们来说没问题。
注意:我有以下WCF配置。服务(receiveTimeout =“05:30:00”)和客户端(receiveTimeout =“05:30:00”和sendTimeout =“05:30:00”)。
注意:无法导航到我们的自定义错误页面,并且不会引发异常。
注:我使用Visual Studio 2005开发
注:WCF是自托管的测试。
注:在WCF NetTcpBinding的
在应用程序中使用的一些配置值列举如下:
<httpRuntime maxRequestLength="20000" executionTimeout="900"/>
<forms loginUrl="Default.aspx" name=".ASPNETAUTH" protection="None" path="/" timeout="30" defaultUrl="Home.aspx">
</forms>
</authentication>
和 -
<roleManager defaultProvider="MyRoleProvider" enabled="true"
cacheRolesInCookie="true" cookieName=".ASPROLES" cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" cookieProtection="All">
<providers>
<clear/>
<add name="MyRoleProvider" type="My.AccessControl.ServiceLayer.MyRoleProvider" />
</providers>
</roleManager>
注: 我是计划在IE中禁用'“显示友好的HTTP错误消息”。我还计划在system.web中使customErrors mode =“Off”对其进行进一步测试。
考虑把它分成独立的过程一个Web请求是不是要住2个小时... –
这是如何托管,在iis?还是开发者服务器?如果它在iis中可能检查你的连接超时设置 –
你是否使用不同的浏览器得到相同的结果? –