我正在尝试使用这个很棒的教程将Elmah实现到我的MVC应用程序中。
http://dotnetdarren.wordpress.com/2010/07/27/logging-on-mvc-part-1/
一切似乎都很好,但是当我建立时,我得到了
找不到合适的方法来覆盖
以下是我从样本
开始的课程public class ErrorHandlingControllerFactory : DefaultControllerFactory
{
/// <summary>
/// Injects a custom attribute
/// on every action that is invoked by the controller
/// </summary>
/// <param name="requestContext">The request context</param>
/// <param name="controllerName">The name of the controller</param>
/// <returns>An instance of a controller</returns>
public override IController CreateController(
RequestContext requestContext,
string controllerName)
{
var controller =
base.CreateController(requestContext,
controllerName);
var c = controller as Controller;
if (c != null)
{
c.ActionInvoker =
new ErrorHandlingActionInvoker(
new HandleErrorWithELMAHAttribute());
}
return controller;
}
}
答案 0 :(得分:1)
嗯,经过更多的研究,我从这个链接找到了问题
http://forums.asp.net/t/1622810.aspx
需要添加对System.Web.Routing的引用,因为它是在一个单独的项目中。
答案 1 :(得分:0)
我能够成功构建:
HandleErrorWithELMAHAttribute
类的代码。ErrorHandlingActionInvoker
类的代码。ErrorHandlingControllerFactory
类的代码。using
语句和对ELMAH的引用。然后,为了检查,我用你问题中的代码替换了ErrorHandlingControllerFactory
的原始代码,并且它也编译没有错误。
我能够通过添加名为DefaultControllerFactory
的类来获得该错误,以便ErrorHandlingControllerFactory
继承该类。这似乎不太可能,但您可能希望确保从正确的类继承。