HttpHandler的问题,求助

创业码农 2008-12-19 11:03:08
(问题描述)
开发环境:xp+vs2008
需求:扩展一个叫*.action的文件后缀,由httphandler转换给真正对应的*.aspx页面
在ASP.NET Development Server(WebDev.WebServer.EXE)运行一切正常,发布到IIS6.0之后就HTTP 404了。
不明白是为什么,修改工程属性用例IIS Web Server发现自己写的httphandler没有执行,将<add verb="*" path="*.action" type="SYS.Common.Broker.HTTP.Extend.ActionHttpHandler,SYS.Common.Broker"/>修改为<add verb="*" path="*" type="SYS.Common.Broker.HTTP.Extend.ActionHttpHandler,SYS.Common.Broker"/>可以截获client的所有请求。可我只希望截获*.action类型的请求。
哪位高人指点指点,谢谢!
...全文
99 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
创业码农 2008-12-30
  • 打赏
  • 举报
回复
谢谢各位,我之前已经解决这个问题了,在iis configuration里首先增加一个.php的指向phpxxx.dll,之后再更名为.action指向aspnet_isapi.dll,不验证文件是否存在就可以了,只是之前这个先用.php再更名为.action是我是怎么都想不明白,算是MS的bug?结帐拿分!
derelictangel 2008-12-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 figroc 的回复:]
在IIS的ISAPI扩展里加上.action指向%systemroot%\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll, 并且不校验文件是否存在。
[/Quote]

PS:
我的目标是 ---->

^_^
lextm 2008-12-28
  • 打赏
  • 举报
回复
HttpHanlder只能处理ASP.NET流水线上的请求,因此IIS那条流水线会提前处理action后缀的请求,然后报出404错误。因此只需要在IIS中将action后缀的设置模仿aspx后缀的方式配置一下就可以阻止404而由你的Handler处理这些请求了。

IIS 7统一了两条流水线,使得ASP.NET方面的Module和Handler都可以参与所有请求的处理,应该会使lz学习起来更加简单了。
wickiup 2008-12-27
  • 打赏
  • 举报
回复
应该在iis里添加映射的。
lovehongyun 2008-12-22
  • 打赏
  • 举报
回复
2,3,4楼很详细.
  • 打赏
  • 举报
回复
看IIS日志,里面有请求类型
周公 2008-12-21
  • 打赏
  • 举报
回复
在“主目录”选项卡我们可以设置网站或者虚拟目录的物理路径,还可以设置动态网页的执行引擎。点击“配置”选项卡,界面如下:

点“添加”按钮。
从上面的截图可以看到,当我们正确安装了IIS和.net framework之后,aspx页面就能被正确执行了。选中.aspx点击编辑,会弹出一个新界面,如下面:
周公 2008-12-20
  • 打赏
  • 举报
回复
在IIS的ISAPI扩展里加上.action指向%systemroot%\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll, 并且不校验文件是否存在。

楼上说得对,应该在IIS里配置一下。
创业码农 2008-12-19
  • 打赏
  • 举报
回复
顶一下
figroc 2008-12-19
  • 打赏
  • 举报
回复
在IIS的ISAPI扩展里加上.action指向%systemroot%\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll, 并且不校验文件是否存在。

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧