【发布时间】:2011-02-11 22:26:26
【问题描述】:
我最近将 Microsoft Unity 添加到我的 MVC3 项目中,现在我收到此错误:
找不到路径“/favicon.ico”的控制器,或者它没有实现 IController。
我并没有真正的 favicon.ico,所以我不知道它来自哪里。最奇怪的是视图实际上正在被渲染,然后这个错误被抛出......我不确定我的控制器工厂类是否有问题,因为我从一些教程中获得了代码(我不是 IoC - 这是我第一次这样做)。代码如下:
公共类 UnityControllerFactory : DefaultControllerFactory { 统一容器容器;
public UnityControllerFactory(IUnityContainer _container)
{
container = _container;
}
protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType)
{
IController controller;
if(controllerType == null)
throw new HttpException(404, string.Format("The controller for path '{0}' could not be found or it does not implement IController.",
requestContext.HttpContext.Request.Path));
if(!typeof(IController).IsAssignableFrom(controllerType))
throw new ArgumentException(string.Format("Type requested is not a controller: {0}",
controllerType.Name),
"controllerType");
try
{
controller = container.Resolve(controllerType) as IController;
}
catch (Exception ex)
{
throw new InvalidOperationException(String.Format(
"Error resolving controller {0}",
controllerType.Name), ex);
}
return controller;
}
}
有什么建议吗?
提前致谢!
【问题讨论】: