В последние дни у меня несколько сбоев на нашем производственном сервере, и я не могу понять, как исправить эту проблему. На сервере размещено приложение электронной коммерции, написанное на классическом ASP, работающее под IIS 7.5 + MSSQL. Примерно один раз в день, начиная с понедельника, происходит сбой процесса w3wp.exe из-за нарушения прав доступа в модуле rewrite.dll. Никаких обновлений в последнее время не устанавливали, патчей к коду приложения нет, видимо ничего не изменилось.
Кто-нибудь имел подобный опыт и может порекомендовать мне решение? Заранее спасибо, вот отчет об анализе зависания при сбое от debug diag.
Type of Analysis Performed Crash Analysis
Machine Name
Operating System Windows Server 2008 R2 Service Pack 1
Number Of Processors
Process ID 456
Process Image C:\Windows\SysWOW64\inetsrv\w3wp.exe
System Up-Time 7 day(s) 02:04:17
Process Up-Time 6 day(s) 23:09:21
Thread 10 - System ID 5640
Thread 10 - System ID 5640
**Full Call Stack**
Function
rewrite!RegisterModule+38b86
rewrite!RegisterModule+38fd3
rewrite!RegisterModule+3855f
rewrite!RegisterModule+214d7
rewrite!RegisterModule+1ed78
rewrite!RegisterModule+1c2fc
rewrite!RegisterModule+3e63
rewrite!RegisterModule+5eb
iiscore!NOTIFICATION_CONTEXT::RequestDoWork+d5
iiscore!NOTIFICATION_CONTEXT::CallModulesInternal+305
iiscore!NOTIFICATION_CONTEXT::CallModules+28
iiscore!W3_CONTEXT::DoStateRequestStart+63
iiscore!W3_CONTEXT::DoWork+8d
iiscore!W3_MAIN_CONTEXT::StartNotificationLoop+49
iiscore!W3_MAIN_CONTEXT::OnNewRequest+47
w3dt!UL_NATIVE_REQUEST::DoStateProcess+26
w3dt!UL_NATIVE_REQUEST::DoWork+60
w3dt!OverlappedCompletionRoutine+1a
w3tp!THREAD_POOL_DATA::ThreadPoolThread+89
w3tp!THREAD_POOL_DATA::ThreadPoolThread+24
w3tp!THREAD_MANAGER::ThreadManagerThread+39
kernel32!BaseThreadInitThunk+e
ntdll!__RtlUserThreadStart+70
ntdll!_RtlUserThreadStart+1b
Exception Information
REWRITE!REGISTERMODULE+38B86WARNING - DebugDiag was not able to locate debug
symbols for rewrite.dll, so the information below may be incomplete.
In WER4CBC.tmp.mdmp the assembly instruction at rewrite!RegisterModule+38b86 in
C:\Windows\System32\inetsrv\rewrite.dll from Microsoft Corporation has caused
an access violation exception (0xC0000005) when trying to read from memory
location 0x7256665a on thread 10
Image Name: C: \Windows\System32\inetsrv\rewrite.dll
Base address: 0x00905a4d
Checksum: 0x00000000
COM DLL: False
ISAPIExtension: False
ISAPIFilter: False
Managed DLL: False
VB DLL: False
Loaded Image Name: rewrite.dll
Mapped Image Name: C:\Windows\System32\inetsrv\rewrite.dll
Module name: rewrite
Single Threaded: False
Module Size: 316,00 KBytes
Symbol File Name: rewrite.dll
Symbol Type: Export
Time Stamp: Thu Jun 24 01:11:33 2010
Comments:
Company Name: Microsoft Corporation
File Description: URL Rewrite Module for IIS 7
File Version: 7.1.0871.0
Internal Name: rewrite
Legal Copyright: Copyright © 2010 Microsoft Corporation
Legal Trademarks: Microsoft® is a registered trademark of Microsoft Corporation.
Original filename: rewrite.dll
Private Build: Built by danielvl on SPIDER.
Product Name: Microsoft® IIS Extensions
Product Version: 7.1.0871.0
Special Build: &
Попробуйте установить исправление из http://support.microsoft.com/kb/2749660
Исправление обновит rewrite.dll до версии 7.1.1678.0.
Другой потенциальной причиной нарушений доступа является неисправная ОЗУ, поэтому может быть целесообразно запустить инструмент диагностики памяти, такой как MemTest.