2009-02-14 153 views
2

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

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

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

当我在本地运行该站点并键入一个URL,如“dork_test.aspx”时,该请求被重定向到处理程序,然后处理业务。

但是,当编译网站上我的域中运行“ dork_test.aspx”将导致:在“/”应用

服务器错误。

无法找到该资源。

说明:HTTP 404资源 你正在寻找(或它的 一个依赖项)可能已被移除, 更名,或者是 暂时不可用。请 查看以下URL并确保 拼写正确。

请求的URL:/dork_test.aspx

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

不知道这是否重要,但是当我在我的域上点击URL SeoHandler.ashx时,处理程序的工作方式与其假设的一样。

Web主机是否有一些IIS设置可忽略<httpHandlers>中的条目?

回答

1

我能够让它在IIS 7上运行。您使用的是共享托管服务提供商,它有像URLScan一样的安装吗?你能否看到服务器级别是否有非默认设置?

8

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

  • 转到Web站点或虚拟目录
  • 主目录选项卡
  • 的属性
  • 单击下面部分中的“配置”
  • 找到.ASPX的扩展名并单击编辑,会出现一个复选框,指出“验证该文件是否存在”。

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

+0

妈的,一切为我的托管公司的管理员都不见了,直到星期一。啊。如果我能抓住他们,我会指示他们。感谢雷克斯! – core 2009-02-14 03:04:06

1

雷克斯M的得到了正确的答案,但我只是尝试类似的东西处理.jpg并失败。

“验证该文件是否存在”复选框非常重要,但您对该文件夹的授权仍存在问题。

然后我试图改变新的网络。配置,我添加该文件夹,并添加

<authorization> 
         <allow users="*" /> 
    </authorization> 

它的工作。所以,授权过程中有些事情不能让我处理.jpg请求。是的,我在该应用程序中进行了身份验证,如果我尝试请求.jpg,它仍然失败。

希望这能解决,以证明你的处理程序工作正常,但对于你需要有一个重大的安全问题......