【发布时间】:2013-09-05 18:52:59
【问题描述】:
我在 MVC 4 应用程序中使用自定义 ModelBinder,但它是在与 global.asax 中的请求事件处理程序不同的线程上调用的,这导致在 ThreadLocal 中设置性能分析上下文失败。
threadId在每行开头的括号中,可以看到调用模型绑定时线程发生了变化,也就是执行控制器动作(Index)的线程。
[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 中的应用程序事件处理程序相同的线程上调用
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-mvc-4 modelbinders