somos 4 desenvolvedores (não administradores de servidores profissionais) e executamos 2 servidores com o IIS 8.5 (Windows Server 2012 R2) e o ASP.NET 4.
Várias vezes por dia, recebemos essa exceção no log de eventos do Windows:
Application: w3wp.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.AccessViolationException
Stack:
at System.Web.Hosting.UnsafeIISMethods.MgdIsLastNotification(IntPtr, System.Web.RequestNotificationStatus)
at System.Web.Hosting.UnsafeIISMethods.MgdIsLastNotification(IntPtr, System.Web.RequestNotificationStatus)
at System.Web.HttpRuntime.FinishRequestNotification(System.Web.Hosting.IIS7WorkerRequest, System.Web.HttpContext, System.Web.RequestNotificationStatus ByRef)
at System.Web.HttpRuntime.OnRequestNotificationCompletionHelper(System.IAsyncResult)
at System.Web.HttpRuntime.OnRequestNotificationCompletion(System.IAsyncResult)
at System.Web.HttpApplication+PipelineStepManager.ResumeSteps(System.Exception)
at System.Web.HttpApplication+CallHandlerExecutionStep.OnAsyncHandlerCompletion(System.IAsyncResult)
at System.Threading.Tasks.Task.Execute()
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)
at System.Threading.Tasks.Task.ExecuteEntry(Boolean)
at System.Threading.ThreadPoolWorkQueue.Dispatch()
A próxima entrada no log de eventos é esta:
Faulting application name: w3wp.exe, version: 8.5.9600.16384, time stamp: 0x5215df96
Faulting module name: iiscore.dll, version: 8.5.9600.17224, time stamp: 0x53b1e5a1
Exception code: 0xc0000005
Fault offset: 0x0000000000002c44
Faulting process id: 0x257c
Faulting application start time: 0x01d05f0c93813e6e
Faulting application path: c:\windows\system32\inetsrv\w3wp.exe
Faulting module path: C:\Windows\system32\inetsrv\iiscore.dll
Report Id: 073f9a19-cb13-11e4-80c3-0cc47a02ce53
Faulting package full name:
Faulting package-relative application ID:
O sempre ocorre como um par. Passei horas com o google, mas não tenho idéia se isso é um problema em nosso código ou em um módulo externo e como resolver isso. O principal problema é que um dos nossos servidores pára de responder de tempos em tempos, então estou realmente interessado se esses problemas estiverem juntos.
Registramos todas as exceções, mas não podemos encontrá-lo em nosso registro. Eu também tentei anexar o depurador remoto, mas eu não recebo a exceção e a depuração realmente desacelera o site.
Editar: verifiquei todas as fontes para capturar exceções no aplicativo m:
- AppDomain.CurrentDomain.UnhandledException
- TaskScheduler.UnobservedTaskException
- Middleware de Owin personalizado
Mas não consegui encontrar essa exceção. A próxima coisa que vou tentar é um módulo http personalizado. Vamos ver.
Também encontrei alguns avisos no log de eventos, como:
Exception type: HttpException
Exception message: The remote host closed the connection. The error code is 0x80070057.
ou
Exception type: HttpException
Exception message: A potentially dangerous Request.Path value was detected from the client (:).
Isso pode acontecer com muita frequência, estou confuso por que eles são adicionados ao log de eventos.