Asp.net 多次调用应用程序时出错

Asp.net 多次调用应用程序时出错,asp.net,asp.net-mvc-3,exception,Asp.net,Asp.net Mvc 3,Exception,我有一个基于asp.net MVC3的应用程序。应用程序运行良好,但我在这里看到一个问题,即在每次页面加载时,应用程序_错误方法会被执行多次,同时不会引发异常,这样应用程序就不会中断。 在调试时,我可以看到错误消息,但我无法理解为什么会出现此错误。我将感谢任何帮助 [7/24/2011 10:30:04 PM]错误:System.Web.HttpException(0x80004005):文件不存在。在System.Web.StaticFileHandler.ProcessRequestInte

我有一个基于asp.net MVC3的应用程序。应用程序运行良好,但我在这里看到一个问题,即在每次页面加载时,应用程序_错误方法会被执行多次,同时不会引发异常,这样应用程序就不会中断。 在调试时,我可以看到错误消息,但我无法理解为什么会出现此错误。我将感谢任何帮助

[7/24/2011 10:30:04 PM]错误:System.Web.HttpException(0x80004005):文件不存在。在System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext上下文,String overrideVirtualPath)在System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext上下文,String overrideVirtualPath)在System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext上下文,AsyncCallback回调,对象状态)在System.Web.StaticFileHandler位于System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()处的System.Web.HttpApplication.ExecuteStep(IExecutionStep,布尔值&同步完成)


使用诸如fiddler或firebug(在Firefox上)之类的工具来检查从浏览器发出的请求,以及哪个请求得到了404(未找到文件)——这将是罪魁祸首


说最有可能的原因是对网站图标的请求,即,
“/favicon.ico”
-大多数浏览器发出此请求是为了获取网站的fav图标,该图标通常用于地址栏、书签等,以方便识别网站。很可能您的站点/项目下没有此文件,因此它会生成404(未找到文件)错误。web开发服务器(或某些配置中的IIS)使用托管管道来处理所有请求,因此每个请求都将通过global.ajax发送,包括每个请求的错误。每当您在站点上刷新(F5)时,都会出现错误。

出现此问题时,我的计算机上缺少所需的DLL(这是Microsoft Enterprise Practices提供的)。试着用ProcMon把找不到的文件归档。我想你猜对了我的问题。我以前从未使用过fiddler,但我下载了它,它应该可以解决我的问题。一旦我解决它,我会把它标记为答案。谢谢。@Vinay fiddler显示,有一些js文件/图像被引用,但不存在,因此调用了应用程序错误。但是,有没有什么方法可以防止我的错误日志被垃圾邮件发送到这些问题上的app_error fn call?无论如何,这些错误不会显示在应用程序上,用户也不会受到影响。@Pramodtech,您可以通过查看异常类型(
HttpException
)和404状态代码(
HttpException.GetHttpCode()
)来筛选这些错误。然而,重要的是您应该删除对不需要的js/图像的引用,因为它们永远不会被获取/缓存,所以浏览器会在每次回发帖子时发出对它们的请求。这在服务器和浏览器端是不必要的负载,由于并发请求较多,会有轻微的延迟。@Vinay我理解我们不应该引用不存在的文件,我将删除这些文件。我只是好奇为什么这些错误不会出现在前端?此外,过滤404错误可能不太好,因为当用户试图从应用程序中删除旧页时,可能会出现404错误。@Pramodtech,如果您将url粘贴到地址栏中的此类资源,您将看到错误。错误以404结尾,但由于这些请求是针对文档中的嵌入内容的,所以浏览器可能不会显示它们(只要收到了文档html)。当然,对于图像,您可以看到替代文本(或通用未找到图标)。关于404的过滤,这是个坏主意,但这正是你所要求的。你不能选择性地记录404,除非你能从请求路径中找出什么是要记录的,什么不是。我宁愿记录所有内容并从代码中删除错误引用。