我遇到了一个奇怪的问题。我有一个使用表单身份验证的ASP.Net Web应用程序。如果我打开登录页面并且有几分钟不活动,则登录尝试超时或IE / FireFox显示“无法显示此页面”。如果没有暂停或没有活动,则没有问题,网站按预期运行。
我在IIS中启用了跟踪。看似挂起的区域是NOTIFY_MODULE_START模块名称:ManagedPipelineHandler。在132141 ms后,我收到以下错误由于线程退出或应用程序请求,I / O操作已中止。 (0x800703e3) - ErrorCode 2147943395。
错误代码2147943629
错误代码尝试对不存在的网络连接进行操作。 (0x800704cd)
Screen Shot: http://www.plasmawebservices.com/images/errorScreenShot.png
服务器是Windows 2008 SP2。 IIS 7
有没有人遇到过这样的错误?
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<telerik:RadFormDecorator ID="RadFormDecorator" runat="server" DecoratedControls="All" />
<p>
Please enter your username and password.
</p>
<asp:Login ID="LoginUser" runat="server" EnableViewState="false" RenderOuterTable="false">
<LayoutTemplate>
<asp:Panel runat="server" ID="LoginPanel" DefaultButton="LoginButton">
<p>
<span class="failure-notification">
<asp:Literal ID="FailureText" runat="server"></asp:Literal>
</span>
</p>
<asp:ValidationSummary ID="LoginUserValidationSummary" runat="server" CssClass="failure-notification"
ValidationGroup="LoginUserValidationGroup" />
<div class="account-info">
<fieldset class="login">
<legend>Account Information</legend>
<p>
<asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">Username:</asp:Label>
<asp:TextBox ID="UserName" runat="server" CssClass="text-entry"></asp:TextBox>
<asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName"
CssClass="failure-notification" ErrorMessage="User Name is required." ToolTip="User Name is required."
ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
</p>
<p>
<asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label>
<asp:TextBox ID="Password" runat="server" CssClass="password-entry" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password"
CssClass="failure-notification" ErrorMessage="Password is required." ToolTip="Password is required."
ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
</p>
<%--<p>
<asp:CheckBox ID="RememberMe" runat="server"/>
<asp:Label ID="RememberMeLabel" runat="server" AssociatedControlID="RememberMe" CssClass="inline">Keep me logged in</asp:Label>
</p>--%>
</fieldset>
<p class="margin-top-10">
<asp:Button ID="LoginButton" runat="server" CommandName="Login" Text="Log In" ValidationGroup="LoginUserValidationGroup" />
</p>
</div>
</asp:Panel>
</LayoutTemplate>
</asp:Login>
谢谢,Brennan
答案 0 :(得分:8)
客户端的服务器上安装了AVG Security工作站组件。工作站组件导致IIS的通信问题。通过禁用Online Shield和Resident Shield,症状不再存在。
在Web应用程序的任何页面上停用两分钟后,页面将锁定。您将在下一个操作中看到一个Ajax加载面板(也称为旋转图标)120秒,然后什么都没有。该应用程序已锁定。
找出导致我们在空闲时间分钟后浏览任何网页时出现“在不存在的网络连接上尝试操作。(0x800704cd)”的原因的根本原因。此问题可能由于多种原因而发生,并且出于此票证的目的,我们将只关注一个根本原因如果问题是由Microsoft组件引起的,我们将努力有效地解决此问题。如果发现问题的原因是第三方或自定义组件,我们将很乐意详细讨论我们的发现并提供可能的解决方法/解决方法。最终将由第三方供应商来解决这些类型的问题。
为了排除故障,默认的ASP.Net网站已创建并作为新网站部署到IIS。结果与有问题的网站相同。
开始 - &gt;跑 - &gt; LogFiles文件
2011-09-20 21:25:25 xx.xxx.xxx.xxx 36482 192.168.10.32 80 HTTP / 1.1 POST / orders / mail / mailorderentry - - Timer_HeaderWait -
2011-09-20 21:22:29 xx.xxx.xxx.xxx 44399 192.168.10.32 80 HTTP / 1.1 POST / orders / mail / mailorderentry - - Client_Reset -
首先,问题与Telrik有关。在REQUEST_ACQUIRE_STATE事件上加载Telerik.Web.UI.RadCompression时,通过IIS跟踪记录以下错误:
Telerik.Web.UI.RadCompression 132187 ms
-GENERAL_READ_ENTITY_END BytesReceived 0 ErrorCode 2147943395 ErrorCode由于线程退出或应用程序请求,I / O操作已中止。 (0x800703e3) 信息
-GENERAL_FLUSH_RESPONSE_END BytesSent 0 ErrorCode 2147943629 ErrorCode尝试对不存在的网络连接执行操作。 0x800704cd)
RadCompression模块已从Web应用程序web.config文件中删除;然而,问题仍然存在。
现在禁用服务器上的AVG Online Shield和Resident Shield。
以下AVG组件仅适用于工作站:
上述组件未在系统负载下进行测试。如果安装在服务器操作系统(例如ISA,代理,邮件服务器,终端服务器等)上,则组件可能会导致服务器通信问题。为避免这些问题,建议不要在服务器操作系统上安装上述组件。 注意:如果您使用安装了某些服务器操作系统的计算机(例如Windows Server 2000,2003等)作为未启用服务器功能的标准计算机,则不适用。
有关特定服务器上AVG安装的更多信息,请参阅以下常见问题解答:
答案 1 :(得分:1)
我知道这是一个旧帖子,但万一有人遇到同样的问题......
当我们的负载均衡器设备尝试检查其中一个站点的https时,我们收到了相同的错误。试图通过PC浏览器点击链接工作正常。
失败的请求跟踪显示了这两个错误
我们的修复程序是在“SSL设置”下的IIS中。 “Accept”目前被选为“客户证书”。更改为“忽略”修复了问题。
答案 2 :(得分:0)
您将获得执行超时,因为ASP.NET应用程序在默认超时间隔后尚未返回到IIS。
http://msdn.microsoft.com/en-us/library/e1f13641.aspx
这并不能解释为什么这么长时间。您可以将默认超时时间增加110秒,这可能会让您更好地排除故障,除此之外您应该尝试调试代码,因为在发布的ASP.NET示例中原因不明显。
要更改默认值,请在web.config中指定executionTimeout
的{{1}}。
如果您要连接到数据库进行身份验证,您可以在那里查看并跟踪收到的内容。
答案 3 :(得分:0)
我在Windows 7开发机器上遇到了同样的问题 - 并且还在我的机器上安装了AVG。
我发现只需在电子邮件扫描程序设置中禁用检查传入电子邮件就可以为我修复此问题。
我启用了Resident Shield - 这似乎不是问题。