FIX: 바칠 것을 Session_End 이벤트 호출된 있습니까 경우 세션 상태에 저장되는 STA 개체 참조 손상될 수 있다

기술 자료 번역 기술 자료 번역
기술 자료: 827164 - 이 문서가 적용되는 제품 보기.
알림
이 문서에서는 Microsoft .NET Framework 1.0 버전에 827163 참조하십시오.
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.
모두 확대 | 모두 축소

이 페이지에서

현상

세션 상태가 단일 스레드 아파트(STA) 개체에 대한 참조를 저장하고 AspCompat 특성이 true 로 설정된 경우, 참조가 손상될 수 있다 또는 Session_End 이벤트에서 개체에 액세스할 때 손실된 될 수 있습니다.

참고 일반적으로 높은 로드가 응용 프로그램을 실행할 경우 또는 응용 프로그램을 실행할 때 ACT) 응용 프로그램 센터 테스트 (예: 스트레스 도구를 사용하는 경우 이 문제가 발생할 수 있습니다. 이 문제가 발생하는 경우 나타날 사용자 "0x8004e005 오류" 오류 메시지가 이벤트 로그에.

원인

Session_End 이벤트 세션이 만들어진 동일한 스레드에서 실행할 수 없기 때문에 문제가 발생합니다. STA 개체를 세션 만들어진 동일한 스레드에서 더 이상 없기 때문에 마샬링 개체에 액세스하는 데 필요합니다. 이 문제는 성능이 저하되는.

STA 개체를 세션 상태에 저장할 수 있습니다. 그러나 이렇게 것을 않는 것이 좋습니다. 자세한 내용은 이 문서의 "참조" 절을 참조하십시오.

해결 방법

이 핫픽스는 Machine.config 파일에 새 구성 설정을 추가합니다. 핫픽스를 설치한 후 다음 응용 프로그램 구성을 사용할 수 있습니다.
<httpRuntime apartmentThreading=”true|false” />,
apartmentThreading, 기본값은 false 로 설정됩니다. apartmentThreadingtrue 로 설정하면 다음과 같은 동작이 발생합니다.
  • 모든 Session_Start 이벤트를 세션 ID, 대상 페이지 또는 처리기가 관계없이 해당하는 STA 스레드를 실행합니다.
  • 세션 ID Session_End 이벤트를 모두 해당하는 STA 스레드에서 실행
  • AspCompattrueAspCompat 명시적으로 false 로 설정되어 있는 페이지 제외한 모든 페이지에 대해 설정하면 됩니다.
참고apartmentThreadingfalse 로 설정되고 True 대상 페이지의 AspCompat 설정되어 있으면 이 핫픽스를 적용한 후 계속 Session_Start 이벤트 STA 스레드에서 실행할 수 있습니다.

이 핫픽스를 직접 세션 상태에 저장된 STA 개체에 대해 작동합니다. 이 핫픽스는 또한 STA 개체를 세션 상태에 저장되어 있고 STA 개체에 대한 참조를 .NET 개체 (예: 한 수준 깊은 중첩에 대해 작동합니다. 그러나 이 핫픽스를 STA 개체를 하나 이상의 수준을 깊은 저장된에 대해 작동하지 않습니다.

중요한 두 가지 유형의 패키지가 이 핫픽스가 포함된: Microsoft Windows Installer 패키지 및 추가 구성 요소 관리자가 패키지 (OCM). Microsoft Windows Server 2003을 사용하는 경우 Windows Server 2003 파일 보호 .NET Framework 1.1 파일을 모니터링합니다 때문에 Windows Server 2003 (OCM) 업데이트를 필요로 하는 지정해야 합니다. Windows Server 2003 이외의 운영 체제를 사용하는 경우, Windows Installer 패키지를 사용하여 계속 합니다.

이 핫픽스 OCM 버전을 다음 언어로 사용할 수 있습니다.
  • 영어 (ENU)
  • 일본어 (일본어)
  • 독일어 (DEU)
  • 프랑스어 (FRN)
지원되는 핫픽스를 이제 Microsoft에서 사용할 수 있지만 이 문서에서 설명하는 문제를 해결하기 위한 것일 뿐입니다. 이러한 특정 문제가 발생하는 시스템에만 적용해야. 이 핫픽스는 나중에 추가 테스트를 받아야 할 수도 있습니다. 따라서 이 문제의 영향이 심각하지 않으면 이 핫픽스가 포함된 다음 Microsoft .NET Framework 1.1 서비스 팩이 나올 때까지 기다리는 것이 좋습니다.

이 문제를 즉시 해결하려면 핫픽스를 구하려면 Microsoft 기술 지원 서비스에 문의하십시오. Microsoft 고객기술지원부 전화 번호 및 지원 비용에 대한 정보를 전체 목록은 다음 Microsoft 웹 사이트를 방문하십시오.
http://support.microsoft.com/contactus/?ws=support
참고 Microsoft 기술 지원 전문가가 특정 업데이트로 문제를 해결할 수 있다고 판단하는 경우, 일반적으로 지원 호출에 발생하는 비용이 취소될 수 있습니다. 추가 지원 질문과 문제에는 특정 업데이트가 필요하지 않은 지원 비용이 적용됩니다.

이 핫픽스의 영어 버전은 파일 특성을 가집니다 (또는 이상) 다음 표에. 이러한 파일의 시간과 날짜는 UTC (협정 세계시) 로 나열됩니다. 파일 정보에서는 현지 시간으로 변환됩니다. UTC와 로컬 시간의 차이를 알려면 제어판의 날짜 및 시간 도구에서 표준 시간대 탭을 사용하십시오.
   Date         Time   Version       Size       File name
   ------------------------------------------------------------------------
   18-Sep-2003  05:18  1.1.4322.947    258,048  Aspnet_isapi.dll
   18-Sep-2003  05:18  1.1.4322.947     20,480  Aspnet_regiis.exe
   18-Sep-2003  05:18  1.1.4322.947     32,768  Aspnet_state.exe
   18-Sep-2003  05:18  1.1.4322.947     32,768  Aspnet_wp.exe
   16-May-2003  01:49                   33,522  Installpersistsqlstate.sql
   16-May-2003  01:49                   34,150  Installsqlstate.sql
   18-Sep-2003  05:09  1.1.4322.947     94,208  Perfcounter.dll
   19-Sep-2003  02:43  1.1.4322.947  1,216,512  System.dll
   19-Sep-2003  02:40  1.1.4322.947    323,584  System.runtime.remoting.dll
   19-Sep-2003  02:43  1.1.4322.947  1,253,376  System.web.dll
   19-Sep-2003  02:42  1.1.4322.947    819,200  System.web.mobile.dll
   19-Sep-2003  02:41  1.1.4322.947    569,344  System.web.services.dll
   19-Sep-2003  02:44  1.1.4322.947  1,335,296  System.xml.dll
   18-Sep-2003  05:13                   14,472  Webuivalidation.js

현재 상태

Microsoft 문제는 이 문서의 시작 부분에 나열한 제품에서 문제를 확인했습니다.

추가 정보

또한 이 핫픽스 패키지는 보조 핫픽스가 포함되어 있습니다. 페이지를 다시 로드할 때 AspCompattrue 로 설정한 다음 null 세션 상태에 저장된 STA 개체를 설정할 경우 "NullReferenceException" 오류 메시지가 나타날 수 있습니다. 보조 문제를 재현하려면 Page_Load 이벤트. 안에 다음 코드를 붙여 넣습니다.
	Session["obj"] = new Object();

	Session["obj"] = null;
이 페이지를 처음 방문할 때 코드가 올바르게 실행됩니다. 그러나 페이지를 다시 로드할 경우 Microsoft ASP.NET에서 "NullReferenceException" 오류 메시지가 나타나고 현재 세션에서 다시 페이지를 볼 수 없습니다.

스택 추적:
[NullReferenceException: Object reference not set to an instance of an object.]
System.Web.UnsafeNativeMethods.AspCompatOnPageStart(Object obj) +0
System.Web.Util.AspCompatApplicationStep.OnPageStartSessionObjects() +90
System.Web.UI.Page.ProcessRequestMain() +44
AspCompatfalse 로 설정하면 이 문제가 발생하지 않습니다.

Windows Mobile 기반 스마트폰에 GPRS 연결이 구성되어 있는지 확인합니다

이 문서의 "현상" 절에 나타나는 문제를 재현하려면 다음과 같이 하십시오.
  1. Microsoft Visual Basic .NET VBA ActiveX DLL을 개체를 만들 수 있습니다.

    참고무인 실행 파일로 (UE) 구성 요소를 표시하는 경우 오류가 계속 발생합니다.
  2. 두 개의 함수가 DLL 클래스 만들기:
    1. 문자열을 반환하는 함수를 만듭니다.
    2. 긴 매개 변수를 사용하는 함수를 만들고 LONG 값을 반환합니다. 이 함수는 함수에 전달된 번호로 1에서 합을 루프를 수행합니다.
  3. 두 개의 .aspx 페이지 (Page1.aspx라 및 Page2.aspx)가 새 웹 응용 프로그램 프로젝트를 만듭니다.
  4. Session_Start 이벤트 Global.asax 파일에서 CreateObject을 1단계에서 만든 개체의 인스턴스를 만들 수 있습니다.
  5. Page1.aspx라는 Page_Load 이벤트 세션 상태에 저장된 개체의 2단계에서 만든 함수 중 하나를 호출하십시오.
  6. Page1.aspx라는 Page2.aspx 연결되는 하이퍼링크를 만듭니다.
  7. Page2.aspx Page_Load 이벤트 Session.Abandon 메서드를 호출하십시오.
  8. 응용 프로그램 센터 테스트 (ACT) Page1.aspx라는 보기 및 Page2.aspx 보기 작업을 기록하는 테스트를 만들 수 있습니다.
  9. 10개의 사용자 테스트를 실행하십시오. 오류 0x8004e005 이벤트 뷰어에 나타나는 경우 를 참조하십시오.

    참고 문제를 재현할 수 있는 사용자 수를 늘려야 할 수 있습니다.

참조

자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
243543정보: 세션 또는 응용 프로그램에 저장하지 STA 개체 작업
243815PRB: Locks 단일 스레드로 아래로 세션을 STA COM 구성 요소를 세션 저장
817005FIX: 사용하면 세션 상태 ASPCompat 모드에서 스레드 바인딩 때 심각한 성능 문제

속성

기술 자료: 827164 - 마지막 검토: 2014년 2월 26일 수요일 - 수정: 1.7
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft .NET Framework 1.1
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Academic Edition
  • Microsoft ASP.NET 1.1
키워드:?
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kberrmsg kbnetframe100presp3fix kbfix kbqfe kbcode kbbug KB827164 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com