AccessViolationException, IIS

1

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.

    
por SebastianStehle 15.03.2015 / 16:56

2 respostas

0

Pode ser um problema de acesso ASPNET.

Clique com o botão direito do mouse em "Computador" - > "Gerenciar" - > "Usuários e grupos locais" - > "Grupos"

Encontre os grupos "DB2ADMNS" e "DB2USERS".

Adicione o usuário "ASPNET" a cada um desses grupos.

    
por 17.03.2015 / 09:30
0

Eu não me preocuparia com

Exception type: HttpException Exception message: The remote host closed the connection. The error code is 0x80070057.

Isso significa apenas que o lado remoto foi embora (caiu? conectividade perdida? quem sabe) enquanto recebia dados.

Eu também não me preocuparia com

Exception type: HttpException Exception message: A potentially dangerous Request.Path value was detected from the client (:).

Isso significa apenas que seu URL inclui dois pontos, o que não é permitido.

Isso deixa as duas principais mensagens de erro. O problema está em algum lugar no seu aplicativo personalizado.

Exception code: 0xc0000005

é uma violação de acesso. A conta do seu aplicativo não tem acesso a tudo o que precisa (pool de aplicativos? Arquivos?) Ou tentou acessar a memória protegida. (Alguém em esta pergunta sugeriu que o problema também pode estar com defeito memória.) Debug Diag (e / ou um utilitário de teste de memória) provavelmente ajudar você a rastrear o que está causando o problema.

Boa sorte!

    
por 24.03.2015 / 22:22