页面载入中......
首页 联系我 返回顶部
Asp.Net的web.config中有一个httpHandlers元素,可以自定义ISAPI扩展。
比如,可以将.xml映射到aspnet_isapi.dll,并设置相应的web.config
<httpHandlers>
<add path="*.xml" verb="*" type="HtmlHttpHandler"/>
</httpHandlers>
这样,就可以将所有.xml的请求交给HtmlHttpHandler来处理,或者说是一种URL重写。

假定我访问1.xml,实际上服务器上执行的并不是1.xml文件,而是一个.aspx文件。
反过来说,要执行.xml就必须得有一个对应的.aspx文件来处理并实现。

那如果我要去访问一个真实存在的.xml文件该怎么办?
直接把.xml传到xml目录下,再去访问http://domain/xml/xxx.xml?很明显是不行的。
因为此时的.xml已由HtmlHttpHandler去实现了。

如果我想实现在xml目录下,不由HttpHandler来处理.xml文件,该如何处理呢?
<httpHandlers>
<add... /> 指定映射到处理程序的谓词/路径。
   <remove... />   移除映射到处理程序的谓词/路径。remove 指令必须与前一个 add 
指令的谓词/路径组合完全匹配。该指令不支持通配符。
   <clear/>   移除当前已配置或已继承的所有处理程序映射。
</httpHandlers>

按上面的说明,应该在xml目录下添加一个web.config,然后在httpHandlers元素中增加一个clear就行了
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<httpHandlers>
<clear />
</httpHandlers>
</system.web>
</configuration>
但,http://domain/xml/xxx.xml依然无法访问,难道是<clear />没有起作用?

3 Responses

收起评论
  1. 下一秒 三月 15 2007 , 15:49, #1
    下一秒
    又见技术帖
  2. 不惊鸟 三月 15 2007 , 17:06, #2
    不惊鸟
    不是在IIS里要设置了应用程序映射吗
    我想,虽然web.config里clear了。但.XML文件还是会用aspnet_isapi.dll来处理
  3. 幻想曲 三月 15 2007 , 17:16, #3
    幻想曲
    看来只能新建虚拟目录,并去掉.xml的.net处理权。
    那clear就不能做这件事情?既然不能做,那clear用来做什么?[em57]

Write a comment:



(将显示你的Gravatar图标)  



[b][/b] - [i][/i] - [u][/u]- [quote][/quote]

:-/ ^_^ :d :o :kiss: :) :p :se: [yeah] :( :love: :han: :up: :cry: :zzz: o_o

暂时停止交换链接.

评论提交有问题?