加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 为什么不调用我的IHttpHandler?

发布时间:2020-12-15 19:01:55 所属栏目:asp.Net 来源:网络整理
导读:我试图获得一个自定义处理程序在ASP.NET 3.5中的特定URL(或一组URL)。 处理程序实际上没有做任何重要的工作 – 它只是记录请求。我可以发布的代码,如果任何事情,它相关的,但我真的不认为它被打电话。 (特别是,对于正常的异常,我得到一个自定义的错误页
我试图获得一个自定义处理程序在ASP.NET 3.5中的特定URL(或一组URL)。

处理程序实际上没有做任何重要的工作 – 它只是记录请求。我可以发布的代码,如果任何事情,它相关的,但我真的不认为它被打电话。 (特别是,对于正常的异常,我得到一个自定义的错误页面和日志…这里我只是得到的香草IIS 404.)

这里是web.config文件的相关位:

<system.web>
  <httpHandlers>
    <add verb="GET,POST" path="*.robot" validate="false" 
         type="CSharpInDepth.Wave.RobotHandler,CSharpInDepth"/>
  </httpHandlers>
</system.web>

(很明显,在这一节也有其他的东西,但我不认为它的相关性。)

在本地,运行在dev服务器下,它工作正常。在我真正的盒子,我总是得到一个404.网站目录下的所有内容是相同的(通过svn复制)。这包括bin目录包含CSharpInDepth.dll,我已经验证包含CSharpInDepth.Wave.RobotHandler。

我试图获取http://csharpindepth.com/foo.robot,只得到一个404。

我试过有和没有程序集名称,特定的URL或通配符…没有什么工作。

我相信我刚刚错过了一些简单的标志在某处的IIS配置,但我被吹了,如果我可以找到它…

编辑:这是IIS版本6.尝试将* .robot添加到ISAPI过滤器现在…

解决方法

如果托管盒是IIS7在集成管道中,您需要将其添加到配置的其他位:
<system.webmodules>
  ....
  <modules>
    <add name="RobotHandler" type="CSharpInDepth.Wave.RobotHandler,CSharpInDepth"/>
  </modules>
  ....
</system.webmodules>

如果是IIS6,那么你需要将* .robots映射到ASP.NET ISAPI DLL。

(对于非Skeets你这样做如下)

>打开IIS管理员。>右键单击您要配置的网站并从中选择属性上下文菜单。这将显示网站属性“对话框。>选择主目录“选项卡,然后单击配置按钮。这会显示应用程序配置对话框。>单击加。>选择aspnet_isapi.dll从.NET框架目录,您要映射的扩展名所有动词,或只是那些你想映射。>单击确定。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读