3
MVC 4 응용 프로그램에서 사용자 지정 ModelBinder를 사용하고 있지만 global.asax의 요청 이벤트 처리기와 다른 스레드에서 호출되므로 ThreadLocal에서 성능 프로파일 링 컨텍스트를 설정하지 못합니다.asp.net mvc 4, 모델 바인딩으로 스레드가 변경 되었습니까?
threadId는 각 행의 시작 부분에 대괄호로 표시되어 있으며 모델 바인딩이 호출 될 때 스레드가 변경되며 컨트롤러 동작 (인덱스)이 실행되는 스레드임을 알 수 있습니다.
[33] | ERROR | MyApp.MvcApplication | Application_BeginRequest
[33] | ERROR | MyApp.MvcApplication | Application_AuthenticateRequest
[33] | ERROR | MyApp.MvcApplication | Application_AuthorizeRequest
[33] | ERROR | MyApp.MvcApplication | Application_ResolveRequestCache
[33] | ERROR | MyApp.MvcApplication | Application_AcquireRequestState
[33] | ERROR | MyApp.MvcApplication | Application_PreRequestHandlerExecute
[52] | ERROR | Binders.MyModelBinder | ModelBinder
[52] | ERROR | MyApp.Controllers.MyController | Index
왜 이런 일이 발생하는지 알고 싶습니다. 내 생각에 컨트롤러 메서드는 항상 global.asax의 응용 프로그램 이벤트 핸들러와 동일한 스레드에서 호출됩니다.
바인더가 별도의 DLL에있는 문제로 인해 문제가 발생한 경우 주 프로젝트로 옮겨서 문제가 남아 있습니다. –