c# - HTTP 处理程序问题

标签 c# .net asp.net httphandler

我在 web.config 文件中设置了一个 HTTP 处理程序:

        <add verb="*" path="*_*.aspx" type="SeoHandler"/>

并且在我网站的根目录中有一个文件 SeoHandler.ashx,它指向 App_Code 文件夹中的 SeoHandler.ashx.cs(该网站不是 Web 应用程序项目)。

当我在本地运行网站并输入“dork_test.aspx”之类的 URL 时,请求将被重定向到处理程序,然后由它处理业务。

但是当编译站点在我的域上运行时,“dork_test.aspx”将导致:

Server Error in '/' Application.

The resource cannot be found.

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.

Requested URL: /dork_test.aspx

为什么 SeoHandler 会在本地捕获“dork_test.aspx”请求而不是在服务器上?

不确定这是否重要,但是当我在我的域中访问 URL SeoHandler.ashx 时,处理程序会像预期的那样工作。

Web 主机是否有一些 IIS 设置忽略了我在 <httpHandlers> 中的输入? ?

最佳答案

检查未设置 .NET 处理程序的服务器上的 IIS,以验证请求的路径实际存在:

  • 转到网站或虚拟目录的属性
  • 主目录选项卡
  • 点击下方的“配置”
  • 找到 .ASPX 的扩展名并单击编辑,有一个复选框显示“验证该文件存在”。

如果选中该复选框,.NET 将不会为任何未映射到同一位置的物理文件的请求提供服务。

关于c# - HTTP 处理程序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/548366/

相关文章:

javascript - 使用 Javascript/jQuery 和 C# 将 SVG 转换为 PNG 以供下载

mysql - 单击按钮时增加特定 ID 的数据行的值

c# - 当前上下文中不存在名称 Response

.net - 奇怪的反序列化错误,子对象没有完全反序列化

c# - 更改类库项目中的数据库连接字符串

c# - 从从未 Hook 的事件中解开委托(delegate)是否有任何问题?

c# - 使用相同的模型并行反序列化(高效)

C# .NET 包含文件

c# - 如何串行运行 NUnit 测试装置?

c# - 如何删除为正常 I/O 打开的文件?