Asp.net mvc Ninject请求范围和派生线程
我用Ninject和NHibernate配置了我的MVC应用程序。我收到一些请求,它们所做的只是将一些工作排队,启动一个线程来处理队列,然后返回Asp.net mvc Ninject请求范围和派生线程,asp.net-mvc,multithreading,nhibernate,ninject,Asp.net Mvc,Multithreading,Nhibernate,Ninject,我用Ninject和NHibernate配置了我的MVC应用程序。我收到一些请求,它们所做的只是将一些工作排队,启动一个线程来处理队列,然后返回 我已将NHibernate会话设置为RequestScope。现在我的问题是,Ninject是否会在请求结束后立即杀死我的会话对象?或者它会为生成的线程保留它吗?我对NInject不太熟悉,但如果它与其他DI容器一样工作,我希望在请求终止后您的会话将不可用。如果需要在同一个应用程序域中运行后台进程,您可能会考虑提供两条解决iSeDes的路径,一个使用T
我已将NHibernate会话设置为RequestScope。现在我的问题是,Ninject是否会在请求结束后立即杀死我的会话对象?或者它会为生成的线程保留它吗?我对NInject不太熟悉,但如果它与其他DI容器一样工作,我希望在请求终止后您的会话将不可用。如果需要在同一个应用程序域中运行后台进程,您可能会考虑提供两条解决iSeDes的路径,一个使用TycEnter用于后台线程访问,另一个使用应用程序Web部分的请求范围。如果需要将使用web会话检索的实体传递到后台线程,请务必小心
如果您可以将后台进程拆分到另一个应用程序域,您还可以创建一个自定义作用域,用于检查HttpContext,然后决定使用哪个作用域。答案是肯定的,Ninject将在HttpContext被垃圾收集后的某个时间点尝试停用会话对象。请参阅此博客帖子: