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后缀,不执行。
*.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>
你好,这个我了解,但是我看了好多博客都写到自定义handler会“覆盖”系统的处理程序,首先加载系统config,然后加载应用程序config,所以看不懂啦,能解答一下,谢谢!
add 前可以用remove 或 clear 标签干掉之前加载的handler
不是很了解你的需求,是需要处理*.aspx文件吗?这个难道不是在iis配置里面设置的?
我是想了解一下自定义httphandler,但是学习过程发现自定义的handler不能覆盖处理*.aspx后缀的
@tuqunfu: path那里改为*呢?
@我是流氓: 试过啦,改成和改成.aspx都不会执行自定义的,只会执行系统handler,但是我看好多博客都写到可以"覆盖"的,所以不明白啦
@tuqunfu: 代码可以贴出来让大家看看嘛?
@tuqunfu: 另外配置文件节点难道不是 httpHandlers ?
@我是流氓: httpHandlers 是经典模式IIS6.0,handlers是集成模式IIS7.0,我是在VS环境的.NET4.5的所以使用handlers
@我是流氓:
这个是自定义handler
这个是配置文件的,按理说访问任何一个. aspx的页面应该要执行这个handler,但是没有执行。