Bar*_*tta 6 asp.net-mvc unity-container
我将Unity3与MVC5一起使用,并且每个请求都需要终身经理.但是,当我启动Web应用程序时,我收到服务器错误,说"在应用程序初始化后无法注册模块".问题是由DynamicModuleUtility引起的.如何解决这个问题呢?
public static void Start()
{
var container = UnityConfig.GetConfiguredContainer();
FilterProviders.Providers.Remove(FilterProviders.Providers.OfType<FilterAttributeFilterProvider>().First());
FilterProviders.Providers.Add(new UnityFilterAttributeFilterProvider(container));
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
//use per request life time manager
DynamicModuleUtility.RegisterModule(typeof(UnityPerRequestHttpModule));
}
Run Code Online (Sandbox Code Playgroud)
我有同样的问题.我的问题是这样的:
在我编写的GlobalAsax.Application_Start()方法中.
UnityMvcActivator.Start();
Run Code Online (Sandbox Code Playgroud)
当我删除它时,一切正常.使用UnityMvcActivator类时,已通过注释调用Start方法:
[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(TrackingServer.App_Start.UnityWebActivator), "Start")]
Run Code Online (Sandbox Code Playgroud)
因此,您无需再次调用Global.asax文件中的UnityMvcActivator方法.
对于 MVC,您需要将其放入 App_Start 文件夹中的类中。如果您将 MVC Unity 添加为 nuget 包,我认为它应该在该文件夹中创建一个名为 UnityMvcActivator 的类。
| 归档时间: |
|
| 查看次数: |
3344 次 |
| 最近记录: |