全局 ASAX 错误:文件不存在

2023-12-31

我试图了解发生了什么错误将我发送到 Global ASAX OnError 处理程序。

using System;
using System.Web;

namespace GLSS.Components.HttpModules
{
  public class ExceptionModule : System.Web.IHttpModule 
  {
    private void OnError(object sender, EventArgs e)
    {
      HttpContext context = HttpContext.Current;

      //get the last error
      Exception ex = context.Server.GetLastError();
      if(ex.InnerException.GetType().ToString() == "CSLA.DataPortalException")
        ex = ex.InnerException;

这是我的异常转换为字符串

HttpContext.Current.Server.GetLastError().Message
"File does not exist."
HttpContext.Current.Server.GetLastError().StackTrace
"   at System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response)
at System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context)
at System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)"

如何确定哪一行代码导致了此错误?我尝试将调试选项设置为在错误发生时中断,但它没有,我仍然处于 ONERROR 全局处理程序中。

一件事是我看到代码假设将出现内部异常,并且这似乎是 NULL 并且在处理程序中导致第二个错误。

我假设错误发生在编译代码中的某个地方。我检查了 Web.Config,唯一提到的路径是日志路径,这似乎有效并且日志记录似乎正在工作。

Update我在这里找到了一些额外的信息:

如何解决“文件不存在”异常? https://stackoverflow.com/questions/3705057/how-to-solve-exception-file-does-not-exist

当我在“立即”窗口中检查此内容时:

? HttpContext.Current.Request.Url.ToString()
"http://localhost:2322/favicon.ico"

然而,令我困惑的是,我使用“在文件中查找”搜索整个解决方案以查找 favicon.ico,但没有看到任何参考。

当我没有看到图标文件的引用时,为什么会出现找不到图标文件的错误?我猜有些程序集正在使用它?但为什么它要在网络根目录中寻找它呢?


大多数现代浏览器都盲目地发出对 favicon.ico 的请求,并且他们期望404(未找到文件)如果没有图标(这是正确的行为)。您可以在下面找到有关 HTML5 工作草案的引用链接类型“图标” http://www.w3.org/TR/2011/WD-html5-20110525/links.html#rel-icon :

在没有带有图标关键字的链接的情况下,对于获得的文档 通过 HTTP 或 HTTPS,用户代理可能会尝试获取和使用 带有通过解析 URL 获得的绝对 URL 的图标 /favicon.ico 对应文档的地址,就好像该页面有 使用 icon 关键字声明该图标。

您看到异常的原因是 Web 开发服务器或 IIS 配置为使用托管/集成管道模式通过所有请求全局.asax(包括错误)。

您可以尝试通过创建以下指向网站图标的虚拟链接来阻止浏览器发出请求:

<html>
    <head>
        <link rel="shortcut icon" href="#" />
        ...
    </head>
...
</html>

您还可以尝试以下其中一项:

  • 在开头添加以下行RegisterRoutes method:

    routes.IgnoreRoute("favicon.ico");

    甚至更扩展的版本:

    routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"});

  • 为自己创建一个空文件作为图标
  • 通过检查过滤掉错误HttpException.GetHttpCode() for 404 and ((System.Web.HttpApplication)Sender).Context.Request.Url for /favicon.ico.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

全局 ASAX 错误:文件不存在 的相关文章

随机推荐

  • WP7 XNA游戏:如何适应不同手机分辨率?

    我创建了一款针对 800 x 480 分辨率的游戏 但对其适应其他 WP7 分辨率很感兴趣 另外 我听说游戏可以通过 Mono 和 ExEn 移植到 iPhone 和 Android 从而开放大量其他屏幕分辨率 处理这个问题的正确方法是什么
  • Linux - 在 Nouveau 驱动程序上运行 Android 模拟器

    Linux Debian Sid x64 内核 4 14 Nvidia GPU 我无法在开放的 Nouveau 驱动程序上运行 Android 模拟器 我没有可以发布任何错误消息 只是分段错误 当我选择软件渲染时 它可以工作但无法使用 运行
  • 返回接口的函数

    为什么我可以说 CreateLion 的结果 指向实现 Cat 接口的结构的指针 是 Cat 接口的实例 但我不能说 CreateLion 是 返回 Cat 的函数 类型界面 实现此类行为的标准 Golang 方法是什么 package m
  • 如何向 JAXB 中的文本元素添加属性?

    如何使用 JAXB 生成以下 XML 片段
  • Codeigniter 图片和源 URL

    我的 Codeigniter URL 有问题 我有一个控制器 welcome php
  • 如何从数组末尾删除第 n 个元素

    我知道您可以使用 array pop 删除数组中的最后一个元素 但如果我想删除最后 2 或 3 个 我该怎么办 那么如何删除该数组中的最后 2 个元素呢 Use 数组拼接 http www php net array splice并指定要删
  • 测试给定数组是否是子数组

    这是 Numpy 初学者提出的一个基本问题 我有一个 5 行 2 列的 2D 数组 您可以将其视为 10 个 2d 向量 我想测试给定的向量是否在表内 例如 gt gt gt tableau array range 10 dtype uin
  • 自定义 Google Maps API v3 中的默认 InfoWindow

    我想知道是否可以自定义当用户单击 Google 在其默认地图上显示的各种企业时弹出的默认信息窗口 请参阅 screenie 我想添加功能 让人们在浏览地图时偶然发现这些位置时 固定 这些位置 目前无法监听 POI 图标上的任何点击事件 因此
  • 在泛型中实现算术?

    是否可以像您一样在 C 泛型中实现基本算术 至少是加法 使用 C 模板 http nonchalantlytyped net blog 2010 04 24 church numerals in c 我已经尝试了一段时间让它们启动并工作 但
  • 类型错误:预期的字节字符串值序列,找到 str 类型的值

    我正在尝试使用运行一个简单的 hello world 应用程序mod wsgi对于 Python 3 我使用的是 Fedora 23 这是我的 Apache 虚拟主机配置
  • 使用 Visual Studio 安装项目自动注册和 GAC COM Interop DLL

    我已经为 COM 互操作创建了一个 NET 程序集 它在我的开发计算机上运行良好 我目前正在尝试弄清楚如何使用 Visual Studio 的 安装项目 将 DLL 部署到目标计算机 如何使用 VIsual Studio 安装项目执行以下操
  • 如何在 matplotlib 中用日期时间绘制 ohlc 烛台?

    我需要每 5 分钟绘制一次交易数据 一根蜡烛 这是我到目前为止所拥有的 from matplotlib finance import candlestick2 ohlc fig ax plt subplots candlestick2 oh
  • 多个单例实例

    我正在编写一个实用程序类库 其中许多都是单例 我已经使用继承来实现它们 template
  • 如何使用 vue-test-utils 在单元测试期间触发窗口事件

    我已经添加了 attachToDocument 但我仍然无法在窗口上触发 keyup 事件 我的依赖项的版本 vue test utils 1 0 0 beta 29 vue 2 5 18
  • 适用于 Android 的 Facebook SDK GraphUser

    我可以使用以下代码访问 GraphUser 的 id 名字 姓氏 性别和电子邮件 但是 我还需要访问 地点 好友数量 基本资料 及 工作公司 如何才能做到这一点 我尝试过其他 stackoverflow 链接 并检查了 Facebook S
  • jQuery Slick Slider 显示一些空幻灯片

    我正在使用 slick jQuery 插件创建一个产品滑块 其中滑块内容使用 js 填充 然后调用 slick 函数 slider 滑块似乎可以工作 但它显示了一些具有 slick cloned 类的空滑块 网站网址是 最后一个滑块工作正常
  • 从 Android Studio IDE 运行测试不会重建纯 java 库模块

    我在 Android Studio 中有一个项目 它只有一个非 android 的纯 java 模块 该模块包含一个我进行测试的类 如果我手动调用 测试会正确执行gradle build or gradle test 但如果我从 IDE 运
  • 尝试使用 Google 云语音 api 时抛出 403

    我正在使用 python 和 google cloud voice api 我完成了 中的所有步骤 如何在Python中使用谷歌语音识别API https stackoverflow com questions 38703853 how t
  • 负向前瞻正则表达式忽略单词列表

    我正在尝试编写一个正则表达式 它将找到后面跟着空格的任何单词 只要该单词不是AND OR NOT 在搜索类似问题后 我尝试了否定前瞻 这是我当前的正则表达式 AND OR NOT s 如果我尝试使用 AND 我会在 ND 上得到匹配 如果我
  • 全局 ASAX 错误:文件不存在

    我试图了解发生了什么错误将我发送到 Global ASAX OnError 处理程序 using System using System Web namespace GLSS Components HttpModules public cl