무엇을 일으킬 수 있습니다 ASP.NET 작업자 프로세스를 재활용이 가능한가요?

StackOverflow https://stackoverflow.com/questions/94042

  •  01-07-2019
  •  | 
  •  

문제

여기에는 현재는 질문:

나는 나의 문제는(아래에 설명)가에 의해 발생되고 ASP.NET 작업자 프로세스를 재활용하고 있당 답변을 아래에 나가 사용하여 InProc 세션 저장소 및 보지 않는 많은 기회의 이동,멀리로 인해 제한에 대한 다른 종류의 저장하는 모든 세션 개체를 직렬화.그러나,내가 알아낼 수 없습니다 무엇을 할 것이라 작업자 프로세스의 재활용으로 자주 나는것은 거기에 없었어요 변화의 응용 프로그램에서 파일이 디렉토리로 나가 알고 있고,이 옵션에서 IIS 것을 의미하는 프로세스만 재생 모든는 1740 분—는 보다 훨씬 덜 자주 실제 세션의 손실이다.그래서 제 질문은 지금,무엇이 다른 경우 일으킬 수 있습니다 ASP.NET 작업자 프로세스를 재활용이 가능한가요?

여기에는 원래 질문:

나는 어려운 문제에서 발생하는 내 ASP.NET 웹 응용 프로그램입니다.응용 프로그램 하나 있습니다.페이지 로드 및합니다 숫자 세션의 변수입니다.이 페이지를 사용 ASP.NET Ajax Sys.Net.WebRequest 클래스의 반복적으로 액세스하는 다른.페이지,사용하는 세션 변수를 데이터베이스 쿼리 및 업데이트 메인 페이지(메인 페이지는 결코 다시 요청하).

때때로,시간 후에 사용하는 페이지는 성공적인 일으키는 HTTP 요청하는 세션에 만들어진 메인 페이지에서 제대로 운반하여 하위 페이지의 요청인은 새로운 ASP.NET 세션을 만들—모든 세션 변수는 손실(일으키는 예외가 발생에 내 코드),및 새로운 세션 id 보고에서 동적으로 요청된 페이지입니다.즉,갑자기 메인 페이지에서 분리하는 서버로 서버에 관한 한,사용자가 더 이상에 기록됩니다.

나는 거의 긍정적인지 세션 제한 시간다—시간 제한 시간은 설정하는 뭔가가 우리 양의 시간이 일어나지만 결코 길을 충분히 세션 시간, 일정 Sys.Net.WebRequests 새로 고침하는 세션 타이머입니다.

그래서,다른 어떤 일이 될 수 있는게 되는 HTTP 요청을 접촉을 잃 ASP.NET 세션?나는 불행하게도 없었 네트워크 트래픽 이것이 나에게 일어난 또는 체크인 경우 ASP.NET 세션 쿠키가 붙어나지 않습니다.

도움이 되었습니까?

해결책

하나의 솔루션을 사용하는 것입니다 StateServer 보다 InProc 세션을 관리합니다.

많은 것들을 일으킬 수 있습 세션 상태를 잃:

  1. 편집 Web.Config
  2. IIS 정
  3. etc.

세션 상태의 중요 한 응용 프로그램은 다음 중 하나를 사용하여 SQL 상태 관리,또는 상태로 서버에있는 선박으로 ASP.NET.

환호

RB.

다른 팁

우리는 문제가 있었의 세션을 때 우리의 마이그레이션 AnkerEx 응용 프로그램 새로운 서버입니다.새로운 서버 Microsoft Windows 서버 2008 작업으로 시스템 고 Microsoft Internet Information Services7.또한 서버에 설치되었다 .NET Framework 버전 1.0.3705,1.1.4322,2.0.50727,3.0,3.5.의 해결을 위해 이 문제는 나가 활성화에 대한 상태 모니터링 응용 프로그램의 일생에서 관련 이벤트 ASP.NET 2.0.나 추가 할 수 있습니다.config:

...
...
<system.web>
...
...
    <healthMonitoring>
      <rules>
        <add name="Application Events"
            eventName="Application Lifetime Events"
            provider="EventLogProvider"
            profile="Default"
            minInterval="00:01:00" />
      </rules>
    </healthMonitoring>
...
...

그것은 우리에게 도움을 확인하는 사용되지 않 재생됩니다.우리는 그것을 볼 수 있습니다 우리는 이벤트 뷰어입니다.에 대한 링크를 더 세부 사항 http://blogs.msdn.com/rahulso/archive/2006/04/13/575715.aspx

후에 추가하여 web.config,이벤트 뷰어 내게 보이는 내 응용 프로그램을 다시 시작할 때마다 나를 클릭하여 거의 모든 링크를 나 응용 프로그램.에서 문의 http://blogs.msdn.com/toddca/archive/2005/12/01/499144.aspx 나 는 것을 발견 ASP.NET 새로운 행동하면 우리는 할 것이 삭제 예를 들어, 하위 디렉토리에의 응용 프로그램의 루트 디렉토리 ASP.NET 2.0 할 것입니다 다시 시작 사용되지 않.

문제는 나에 web.구성 명령:

...
<compilation debug="true" tempDirectory="c:\AnkerEx\Temporary ASP.NET files">
...

I.e.이 ASP.NET 았을 컴파일하의 aspx 페이지에서 폴더의 내용됩니다.나는 그가 폴더를 만들 수 있고 제거하는 중에 어떤 이들.내가 제거 tempDirectory 명령어와 응용 프로그램 작업을 시작했 안정적입니다.

그것에 의해 발생할 수 있는 처리 되지 않은 예외는 백그라운드 스레드에서.그것을 당할 수 있습니다 ASP.NET 작업자 프로세스가 종료됩니다.새로운 프로세스는 매우 빠르게 시작하지 않도록 당신은 실제로 그것을 통지하지만 모든 세션을 잃게 됩니다.

여기에 문서에서 설명하는 것보다 더 나은 할 수 있습니다: ASP.NET 2.0 처리되지 않은 제외 문제

견적:

처리되지 않은 제외에서 실행 ASP.NET 2.0 응용 프로그램은 일반적으로 종료 W3WP.exe 프로세스와 함께 당신을 떠나 매우 복잡은 이벤트 로그 항목이 같은 것:

"Eventtype 입 clr20r3,P1w3wp.exe P2 6.0.3790.1830,P3 42435be1,P4app_web_ncsnb2-n,P5 0.0.0.0,P6 440a4082,P7 5,P8 1,P9 시스템입니다.든,P10 전무하다."

여기에서 Microsoft KB 문서에서 설명하는 동일한 문제점: KB911816 처리하지 않는 예외가 발생 ASP.NET 기반 응용 프로그램을 사용하면 예기치 않게 종료한다.NET Framework2.0

내 생각될 것입 메모리를 소모-그러나,설정 IIS 로그인 재활용 당신은 확실히 알 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top