我一直在使用HTTPHandler并有一个问题
如果我有一个在web.config中注册到地址A.hdlr的处理程序A,我可以在该处理程序上创建一个链接到http://www.mysite.com/A.hdlr - 辉煌。
但是,如果我更新我的web.config文件,该地址将不再有效。有没有办法检测处理程序当前配置的地址(如果确实配置了),以便我可以相应地更新链接?
编辑添加:
我目前在
中配置了处理程序<system.webServer><handlers>
表单中的部分
<add name="MyHandler" verb="GET" path="MyHandler.hdlr" precondition="integratedMode" type="MyType" />
但是我愿意接受建议 - 我担心如果有人更新此配置地址,直接在代码中引用“MyHandler.hdlr”将会中断
答案 0 :(得分:1)
更新网络配置文件是什么意思?你能说得更清楚吗?
我知道注册处理程序的唯一方法是在Web配置文件中提供其名称或扩展名。
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="A.hdlr"
type="HandlerA" />
</httpHandlers>
</system.web>
</configuration>
它说如果请求资源A.hdlr,那么它必须由HandlerA.ashx处理。
好的,现在我清楚地了解了你的担忧。是的,如果某个主体将其更改为Foo.hdlr,那么Foo.hdlr资源将由MyType处理程序提供。但想想为什么有人会这样做?它与编写错误逻辑的代码相同。
您可以通过编写代码来动态注册处理程序以修改web.config(但它会重新启动App Domain)。但这并不能保证某些机构无法修改您的动态代码。应仔细处理web.config中的条目。