我正在处理的应用程序在特定请求期间对后端的调用非常慢。我们不是希望用户必须等待请求完成,而是将调用包装在Task.Run()
中,然后将其忽略,然后将视图返回给用户。
但是,由于如何设置StructureMap.MVC5,所以将容器放置在请求的末尾:
context.EndRequest += (sender, e) =>
{
HttpContextLifecycle.DisposeAndClearAll();
StructuremapMvc.StructureMapDependencyScope.DisposeNestedContainer();
};
由于Task.Run()
内部的代码仍依赖于IContainer
,并且已经被处理掉了,因此在尝试访问它时显然会出现异常。
我是否仍然可以使用StructureMap嵌套容器,但仍然为此实例保持足够长的生命?