I sometimes have double web requests (no double clicks). Can someone please tell me what causes them, so I can prevent them?
initial situation:
This is a .NET 3.5 C # application running in IIS7. No Asp.Net with ViewState. Just Pagers with Xml / Xslt Conversion.
The code is very old. This problem has appeared recently.
We send emails there, and this is how it appeared. Sometimes we sometimes received two letters instead of one.
My observations so far:
This rarely happens, but nonetheless sometimes. Apparently random.
The bytes sent in the first request are 0, but they are not double clicks. HttpContext.Current.Response.IsClientConnected is true.
My assumptions:
It seems that something went wrong in SessionHandling (via Sql-Server) and this opens the request again?
IIS Journal:
2012-03-02 08:16:43 W3SVC9026 [Server] [IP Server] POST [Internal URL] - 80 - [Client IP] HTTP / 1.1 Mozilla / 4.0 + (compatible; + MSIE + 8.0; + Windows + NT + 5.1; + Trident / 4.0; + AskTbORJ / 5.14.1.20007) ASP.NET_SessionId = [Session ID] [Absolute URL] [Host Name] 200 0 64 0 899 937
2012-03-02 08:16:43 W3SVC9026 [Server] [Server IP] POST [internal URL] - 80 - [Client IP] HTTP / 1.1 Mozilla / 4.0 + (compatible; + MSIE + 8.0; + Windows + NT + 5.1; + Trident / 4.0; + AskTbORJ / 5.14.1.20007) ASP.NET_SessionId = [Session ID] [Absolute URL] [Host Name] 200 0 0 45888 923 1343
Stacktrace:
08:16:43 Regular query (all regular queries that run only once look the same)
in System.Environment.get_StackTrace ()
in [MyPageHandler.ProcessRequest (HttpContext httpContext) etc.]
in System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute ()
in System.Web.HttpApplication.ExecuteStep (step IExecutionStep, logical and completed synchronously)
in System.Web.HttpApplication.ApplicationStepManager.ResumeSteps (exception error)
in System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest (HttpContext context, AsyncCallback cb, extraData object)
in System.Web.HttpRuntime.ProcessRequestInternal (HttpWorkerRequest wr)
in System.Web.HttpRuntime.ProcessRequestNoDemand (HttpWorkerRequest wr)
in System.Web.Hosting.ISAPIRuntime.ProcessRequest (IntPtr ecb, Int32 iWRType)
08:16:44 Additional request
in System.Environment.get_StackTrace ()
in [MyPageHandler.ProcessRequest (HttpContext httpContext) etc.]
in System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute ()
in System.Web.HttpApplication.ExecuteStep (step IExecutionStep, logical and completed synchronously)
in System.Web.HttpApplication.ApplicationStepManager.ResumeSteps (exception error)
in System.Web.HttpApplication.ResumeStepsFromThreadPoolThread (exception error)
in System.Web.HttpApplication.AsyncEventExecutionStep.ResumeStepsWithAssert (exception error)
in System.Web.HttpApplication.AsyncEventExecutionStep.OnAsyncEventCompletion (IAsyncResult ar)
in System.Web.HttpAsyncResult.Complete (logical synchronous, object result, exception error, RequestNotificationStatus status)
in System.Web.SessionState.SessionStateModule.PollLockedSessionCallback (object state)
in System.Threading.ExecutionContext.runTryCode (Object userData)
in System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup (TryCode code, CleanupCode return code, object user data)
in System.Threading.ExecutionContext.Run (ExecutionContextual executionContext, ContextCallback callback, Object state)
in System.Threading._TimerCallback.PerformTimerCallback (object state)