首页 新闻 会员 周边 捐助

asp.net 自定义HttpHandler无法覆盖系统处理请求

0
悬赏园豆:10 [已解决问题] 解决于 2020-01-09 10:32

asp.net webform中自定义的httphandler处理程序可以处理自定义后缀,但是无法覆盖aspx页面,在webconfig中配置了handler没有效果
<system.webServer>
<handlers>
<add name="yhandler" verb=" * " path=" *.aspx" type="MyHttpHandler.AppHttpHandler,MyHttpHandler" />
</handlers>
</system.webServer>
不知道什么原因,这个自定义handler可以处理自定义后缀,但是不能处理aspx后缀,不执行。

tuqunfu的主页 tuqunfu | 菜鸟二级 | 园豆:393
提问于:2020-01-06 23:06
< >
分享
最佳答案
0

*.aspx 后缀被 System.Web.UI.PageHandlerFactory handler 抢先处理了,详见 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config

<handlers>
    <add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True"/>
<handlers>
收获园豆:8
dudu | 高人七级 |园豆:30778 | 2020-01-07 10:32

你好,这个我了解,但是我看了好多博客都写到自定义handler会“覆盖”系统的处理程序,首先加载系统config,然后加载应用程序config,所以看不懂啦,能解答一下,谢谢!

tuqunfu | 园豆:393 (菜鸟二级) | 2020-01-07 10:43
其他回答(2)
0

add 前可以用remove 或 clear 标签干掉之前加载的handler

收获园豆:2
pencile | 园豆:845 (小虾三级) | 2020-01-07 11:02
0

不是很了解你的需求,是需要处理*.aspx文件吗?这个难道不是在iis配置里面设置的?

我是流氓 | 园豆:20 (初学一级) | 2020-01-07 16:38

我是想了解一下自定义httphandler,但是学习过程发现自定义的handler不能覆盖处理*.aspx后缀的

支持(0) 反对(0) tuqunfu | 园豆:393 (菜鸟二级) | 2020-01-07 16:41

@tuqunfu: path那里改为*呢?

支持(0) 反对(0) 我是流氓 | 园豆:20 (初学一级) | 2020-01-07 16:46

@我是流氓: 试过啦,改成和改成.aspx都不会执行自定义的,只会执行系统handler,但是我看好多博客都写到可以"覆盖"的,所以不明白啦

支持(0) 反对(0) tuqunfu | 园豆:393 (菜鸟二级) | 2020-01-07 16:48

@tuqunfu: 代码可以贴出来让大家看看嘛?

支持(0) 反对(0) 我是流氓 | 园豆:20 (初学一级) | 2020-01-07 16:54

@tuqunfu: 另外配置文件节点难道不是 httpHandlers ?

支持(0) 反对(0) 我是流氓 | 园豆:20 (初学一级) | 2020-01-07 16:58

@我是流氓: httpHandlers 是经典模式IIS6.0,handlers是集成模式IIS7.0,我是在VS环境的.NET4.5的所以使用handlers

支持(0) 反对(0) tuqunfu | 园豆:393 (菜鸟二级) | 2020-01-07 17:19

@我是流氓:
这个是自定义handler

这个是配置文件的,按理说访问任何一个. aspx的页面应该要执行这个handler,但是没有执行。

支持(0) 反对(0) tuqunfu | 园豆:393 (菜鸟二级) | 2020-01-07 17:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册