任何人都可以就过滤我的 Elmah ( http://code.google.com/p/elmah/ ) 异常日志提供建议吗?

Elmah 是一个非常有值(value)的工具,可以突出显示我在 Web 应用程序中的明显错误和疏忽。

然而现在..大多数Elmah条目与我自己的愚蠢无关(好吧 - 也许他们有 - 因此我的问题),但任何建议将不胜感激。

我的 Elmah 日志现在有 10'000 条类似于以下内容的条目:

  • 路径 Controller
    '/ws/login.php' 找不到或
    它没有实现 IController。
  • 路径 Controller
    找不到“/text/javascript”
    或者它没有实现 IController。
  • 路径 Controller
    '/jlkqyvaugdaktp.html' 不能
    发现或不执行
    Controller 。 [[实际上是 100
    这些!! ...做这些随机页面
    在“HackerDom”中意味着什么? ]]
  • 路径 Controller
    '/脚本/thickbox/macFFBgHack.png'
    找不到或没有
    实现 IController。

  • 所以.. 到“问题”

    很明显,这些异常中的绝大多数是由 IController 生成的……我可以告诉 Elmah 只是“忘记”这些并继续记录我真正的异常吗?

    还是我非常通用的 MVC IgnoreRoute 设置不够好?我是否应该忽略“.htm”、“*.php”和所有其他内容,以便我可以更真实地看到 Elmah 报告关于我的应用程序可能更真实地丢失的页面/项目/对象?

    非常感谢您的时间和考虑。

    我现有的路线设置如下所示:
             routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
                routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
                routes.IgnoreRoute("{*forums}", new { forums = @"cccForums/.*" });
                routes.IgnoreRoute("{file}.txt");
    
    ///  REAL ROUTES
                routes.MapRoute(
                    "ItemIndex", // Route name
                    "Item/Index/{page}", // URL with parameters
                    new { controller = "PageItem", action = "Index", page = 1} // Parameter defaults
                    );
    
    .............
    .............
    
    
    /// LAST CASE
    
     routes.MapRoute("Error", "{*url}", new { controller = "Site", action = "Map" });
    

    最佳答案

    一种解决方案是实现一个捕获所有路由,将所有未知请求重定向到 404 页面。这将防止未捕获的异常,并且您的最终用户会获得漂亮的页面(非黑客类型)。

    routes.MapRoute("Error", "{*url}",
            new { controller = "Error", action = "http404" }
        );
    

    将它放在 global.asax 中注册路由函数的末尾。您应该会看到所有 ELMAH 错误都消失了。

    编辑

    还不快睡! :)如果您不想记录 404 错误(或与 ELMAH 相关的任何其他类型的错误),您应该能够在您的 web.config 中执行以下操作:
    <elmah>
        ...
        <errorFilter>
            <test>
                <equal binding="HttpStatusCode" value="404" type="Int32" />
            </test>
        </errorFilter>
    </elmah>
    

    ELMAH ErrorFiltering Documentation

    关于asp.net-mvc - MVC、Elmah、明显的黑客企图和 "generic"IgnoreRoutes,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3532006/

    10-13 02:39