Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
테스트도 무사히 마치고 성능상의 문제도 거의 없던 ASP.Net 응용프로그램이 느려지거나 갑작스럽게 종료하는 경우 다음 상황을 확인해 보세요.
1. In-Proc 타입 (구성요소 서비스에서 별도의 프로세스로 분리되지 않고 바로 서비스되는 흔히 라이브러리 타입이라고 불리는)의 COM+객체 또는 .Net Serviced Component를 호출한다
2. 수행 시간이 긴 작업을 수행하는 COM+ 또는 Serviced Component 호출 중 타임아웃이 발생한다.
3. 아래와 비슷한 형태의 오류가 이벤트 로그 상에 기록 된다.
COM+ Event ID: 4768
Event Type: Error
Event Source: COM+
Event Category: Unknown Event
ID: 4786
Description: The system has called a custom component and that component has failed and generated an exception. This indicates a problem with the custom component. Notify the developer of this component that a failure has occurred and provide them with the information below.
Method Name: IObjectControl::Deactivate()
Exception: E0434F4D
Address: 0x77E649D3
Call Stack:
kernel32!RaiseException + 0x48
mscorsvr!CoEEShutDownCOM + 0xe448
mscorsvr!CoEEShutDownCOM + 0xe3cb
mscorsvr!CoEEShutDownCOM + 0xe37f
mscorsvr!CoEEShutDownCOM + 0xe322
mscorsvr!GetMetaDataPublicInterfaceFromInternal + 0x26ef
mscorsvr!CoEEShutDownCOM + 0x15eae
mscorsvr!ReleaseFusionInterfaces + 0x1d2fa
comsvcs!RegisterComEvents + 0x3f074
comsvcs!RegisterComEvents + 0x40146
ole32!ReadStringStream + 0x22057
ole32!CreateDataAdviseHolder + 0x1534
ole32!CoQueryAuthenticationServices + 0xf5f
ole32!CoQueryAuthenticationServices + 0x1b06
ole32!CoQueryAuthenticationServices + 0x2236
Event Type: Error
Event Source: Application Error
Event Category: (100)
Event ID: 1000
Description: Faulting application w3wp.exe, version 6.0.3790.1830, faulting module kernel32.dll, version 5.2.3790.2756, fault address 0x00015e02. For more information, see Help and Support Center at https://go.microsoft.com/fwlink/events.asp.
Data: 0000: 41 70 70 6c 69 63 61 74 Applicat 0008: 69 6f 6e 20 46 61 69 6c ion Fail 0010: 75 72 65 20 20 77 33 77 ure w3w 0018: 70 2e 65 78 65 20 36 2e p.exe 6. 0020: 30 2e 33 37 39 30 2e 31 0.3790.1 0028: 38 33 30 20 69 6e 20 6b 830 in k 0030: 65 72 6e 65 6c 33 32 2e ernel32. 0038: 64 6c 6c 20 35 2e 32 2e dll 5.2. 0040: 33 37 39 30 2e 32 37 35 3790.275 0048: 36 20 61 74 20 6f 66 66 6 at off 0050: 73 65 74 20 30 30 30 31 set 0001 0058: 35 65 30 32 5e02
위의 상황이 발생하게 되면 컴퍼넌트 수행 중에 ThreadAbortException이 raise 되고 관련 내용인 윈도우즈 에러 리포팅 서비스에 기록 됩니다. 이때 문제가 일어나 프로세스는 작동이 멈추며 (FailFast가 발생하여) 이 상태에서 프로세스의 수행이 멈추게 됩니다.
이 문제를 해결할 수 있는 방법은 다음의 두가지 방법이 있습니다.
1. ASPX 페이지의 실행 시간을 늘린다. 즉 executionTimeout이나 Server.ScriptTimeout 의 값을 늘려 준다.
2. 문제가 발생하는 Component를 Out-Of-Process 형태로 별도 프로세스에서 실행 되도록 설정을 변경한다.
자세한 내용은 아래의 KB 문서를 참고 하시기 바랍니다.
An ASP.NET application may experience delays if a request times out when the application invokes in-process COM+ components
https://support.microsoft.com/?id=917069
Comments
- Anonymous
July 12, 2008
The comment has been removed