gpt4 book ai didi

asp.net - 在 MVC 3 中使用 DependencyResolver 进行 Controller 实例化时出错

转载 作者:行者123 更新时间:2023-12-05 00:36:23 26 4
gpt4 key购买 nike

我正在使用 MVC 3 并在应用程序启动时使用以下代码...

UnityContainer container = new UnityContainer();

new UnityMappings(container);

DependencyResolver.SetResolver(new UnityServiceLocator(container));

现在,当应用程序运行时,我收到以下错误(但只是有时)...

Activation error occured while trying to get instance of type IControllerFactory, key ""



有趣的是,如果我继续 Web 请求,则该网站可以正常工作。

有任何想法吗?当这一切正常时,我看不出我在做什么与以前不同。

干杯,伊恩。

最佳答案

MVC3 请求的不仅仅是来自 DependencyResolver 的 Controller .对于其中的大多数,MVC3 会回退到默认实现,以防 DependencyResolver 不返回实例。

在您的情况下,它请求 IControllerFactory你的 IoC 容器不知道它,它抛出一个异常,被 UnityServiceLocator 捕获。实现并返回 null。 MVC 然后回退到默认 Controller 工厂。

与其他 IoC 容器不同,Unity 不提供可选的 TryResolve因此不支持 DependencyResolver 的正确无异常实现.

关于asp.net - 在 MVC 3 中使用 DependencyResolver 进行 Controller 实例化时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8151536/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com