Я использую пользовательский ModelBinder в приложении MVC 4, но он вызывается в другом потоке, чем обработчики событий запроса в 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, я переместил их в основной проект и проблема осталась. –