2010-08-02 2 views
2

asp.net webservice에서 처음 액세스 할 때 데이터를로드하는 정적 데이터 집합이 있습니다. 그러나 IIS가 응용 프로그램 풀을 재활용 할 때 "컬렉션이 수정되었으므로 열거 연산이 실행되지 않을 수 있습니다"라는 예외가 발생합니다.IIS 리사이클이 정적 데이터 집합 액세스에서 오류를 발생합니다.

리사이클은 새 정적 데이터 세트를 생성하는 새 프로세스를 시작합니다. 이전 작업자 프로세스의 요청은 새 정적 데이터 세트에 액세스하지 못합니다. 어떻게 콜렉션이 수정 될 수 있습니까? 또는 가능하면 오래된 작업자 프로세스가 요청이 완료되기 직전에 종료됩니까?

또는 재활용 과정이 잘못되었다는 것을 알고 있습니까? 새로운 작업자 프로세스를 시작하는 대신 IIS는 동일한 작업자 프로세스에서 새로운 AppDomain을 시작합니다. 과거와 현재의 appDomains가 같은 정적 데이터 세트를 공유하고 있습니까?

답변

1

이 오류는 재활용 과정에서 발생하지 않은 것으로 나타났습니다. 시작 프로세스에서 동기화는 데이터 세트를 나중에 요청/thread로 반환했지만 첫 번째 요청/스레드는 여전히 "수집이 수정되었습니다"예외로 인해 데이터를 채 웁니다.

흔히 그렇듯이 나는 열쇠가 서랍의 책상 위에 완벽하게 놓이는 동안 열쇠가 있어야한다고 생각합니다. 가끔은 눈보다 오히려 마음이라고 생각합니다. 이 경우, 질문을 게시 한 후, 나는 잘못 처리 한 것으로보고 있다는 것을 깨달았습니다. 단순히 재활용 프로세스로 인한 것이므로 누군가가 이미 답변을 게시해야하기 때문입니다.

감사합니다. Zhen