随机双Web请求C#IIS7 PollLockedSessionCallback

时间:2012-03-02 10:17:41

标签: c# http web request

我有时会有双重网络请求(没有双重答题器)。 任何人都可以告诉我是什么原因导致他们,所以我可以阻止他们吗?

初始情况:

这是在IIS7中运行的.Net 3.5 C#应用程序。没有Asp.Net与ViewState。只是PageHandlers用 Xml / Xslt转换。
代码很老了。这个问题刚刚出现在前一段时间 我们在那里发送电子邮件,以及它是如何弹出的。我们有时突然收到两封邮件,而不是一封。

到目前为止我的观察结果:

它很少发生,但有时仍然如此。显然是随机的。
第一个请求的Sent Bytes为0,但它们不是双重答题。 HttpContext.Current.Response.IsClientConnected为true。

到目前为止我的假设:

看来SessionHandling出现问题(通过Sql-Server),这会重新打开请求吗?

IIS日志:

2012-03-02 08:16:43 W3SVC9026 [服务器] [服务器IP] POST [内部URL] - 80 - [客户端IP] HTTP / 1.1 Mozilla / 4.0 +(兼容; + MSIE + 8.0; + Windows + NT + 5.1; + Trident / 4.0; + AskTbORJ / 5.14.1.20007)ASP.NET_SessionId = [会话ID] [绝对URL] [主机名] 200 0 64 0 899 937

2012-03-02 08:16:43 W3SVC9026 [服务器] [服务器IP] POST [内部URL] - 80 - [客户端IP] HTTP / 1.1 Mozilla / 4.0 +(兼容; + MSIE + 8.0; + Windows + NT + 5.1; + Trident / 4.0; + AskTbORJ / 5.14.1.20007)ASP.NET_SessionId = [会话ID] [绝对URL] [主机名] 200 0 0 45888 923 1343

堆栈跟踪:

08:16:43常规请求(所有正常请求只运行一次)

在System.Environment.get_StackTrace()中 在[MyPageHandler.ProcessRequest(HttpContext httpContext)等]中 在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)
在System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(异常错误)
在System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context,AsyncCallback cb,Object extraData)
在System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)
在System.Web.HttpRuntime.ProcessRequestNoDemand(HttpWorkerRequest wr)
在System.Web.Hosting.ISAPIRuntime.ProcessRequest(IntPtr ecb,Int32 iWRType)

08:16:44附加请求

在System.Environment.get_StackTrace()中 在[MyPageHandler.ProcessRequest(HttpContext httpContext)等]中 在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)
在System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(异常错误)
在System.Web.HttpApplication.ResumeStepsFromThreadPoolThread(异常错误)
在System.Web.HttpApplication.AsyncEventExecutionStep.ResumeStepsWithAssert(异常错误)
在System.Web.HttpApplication.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar)
在System.Web.HttpAsyncResult.Complete(布尔同步,对象结果,异常错误,RequestNotificationStatus状态)
在System.Web.SessionState.SessionStateModule.PollLockedSessionCallback(对象状态)
在System.Threading.ExecutionContext.runTryCode(Object userData)
在System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode代码,CleanupCode backoutCode,Object userData)
在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,对象状态)
在System.Threading._TimerCallback.PerformTimerCallback(对象状态)

0 个答案:

没有答案