IIS配置.html的映射后无法访问.html文件(学习收藏)
2012-07-09 10:12
295 查看
IIS配置.html的映射问题,其实这个问题可以说是HttpHandlerFactory的在web.config中注册的问题
问题描述:
一套网站程序使用URL重写,配置了ISAPI映射.html 动作全部,检查文件是否存在 不打勾 如下图
问题: 不对IIS配置.html的映射,IIS站点目录下.html页面都能显示。当配置了.html的映射 IIS站点目录下真实存在的.html页面无法显示,错误信息:“页面无法显示”而通过自定义HttpHandlerFactory块过滤的.html文件能够显示,由于这个原因就连FCKEditor也无法正常显示。
这个问题困扰了半天,极度郁闷,
在网上找了好久,也没有个办法,有一个和我一样的问题,但上面说的解决方法却不好用,更是郁闷,后来经过n次的测试修改,才把这个问题解决了,解决方法:
1、首先照旧在网站配置的应用程序扩展名映射中添加扩展名.html映射到aspnet_isapi.dll,是否存在不选;
2、在web.config文件中<compilation>节点下添加code:
<buildProviders>
<add extension=".html" type="System.Web.Compilation.PageBuildProvider" />
</buildProviders>
注:仅仅设置应用程序映射是不够的,没有为扩展名“.html”注册的生成提供程序。因此别忘了上面的code!
3、在web.config文件中<system.web>节点下添加code:
<httpHandlers>
<add path="*.html" verb="*" type="System.Web.UI.PageHandlerFactory" validate="true"/>
</httpHandlers>
注:这里值得注意的是add的先后顺序,很简单的原理,通过这个配置文件请求首先要到我们自定义的httpHandler块,如果不在我们指定的path里,则走系统的PageHandlerFactory; 还有一个要注意的地方就是,这里当
<add path="html/*.html" verb="*" type="AutoModuleService.AutoHandlerFactory,AutoModuleService" validate="true"/>
指明路径后,并不像下级目录继承,也就是当用户浏览html/vip/index.html时,被系统的System.Web.UI.PageHandlerFactory正常处理;如果需要继承指明路径下包括下级目录所有*.html的话,则就需要做些修改了
修改方法:
上面的1和2照做;
3、在web.config文件中<system.web>节点下添加code:
<httpHandlers>
<add path="*.html" verb="*" type="System.Web.UI.PageHandlerFactory" validate="true"/>
</httpHandlers>
4、在web.config文件中<configuration>节点下使用<location>节点,添加code:
<location path ="html">
<system.web>
<httpHandlers>
<add path="*.html" verb="*" type="AutoModuleService.AutoHandlerFactory,AutoModuleService" validate="true"/>
</httpHandlers>
</system.web>
</location>
最后补充两点:
如果你用到的后缀类型是一种古怪的后缀。
比如:*.aaa *.csdn 等这样的后缀,
在IIS6 中,你需要额外再多做一步:
在IIS的站点属性->HTTP头->MIME类型中增加一个该后缀的MIME类型,不然遇到该后缀的请求时将首先被IIS给拦截掉,没办法显示的。
问题描述:
一套网站程序使用URL重写,配置了ISAPI映射.html 动作全部,检查文件是否存在 不打勾 如下图
问题: 不对IIS配置.html的映射,IIS站点目录下.html页面都能显示。当配置了.html的映射 IIS站点目录下真实存在的.html页面无法显示,错误信息:“页面无法显示”而通过自定义HttpHandlerFactory块过滤的.html文件能够显示,由于这个原因就连FCKEditor也无法正常显示。
这个问题困扰了半天,极度郁闷,
在网上找了好久,也没有个办法,有一个和我一样的问题,但上面说的解决方法却不好用,更是郁闷,后来经过n次的测试修改,才把这个问题解决了,解决方法:
1、首先照旧在网站配置的应用程序扩展名映射中添加扩展名.html映射到aspnet_isapi.dll,是否存在不选;
2、在web.config文件中<compilation>节点下添加code:
<buildProviders>
<add extension=".html" type="System.Web.Compilation.PageBuildProvider" />
</buildProviders>
注:仅仅设置应用程序映射是不够的,没有为扩展名“.html”注册的生成提供程序。因此别忘了上面的code!
3、在web.config文件中<system.web>节点下添加code:
<httpHandlers>
<add path="*.html" verb="*" type="System.Web.UI.PageHandlerFactory" validate="true"/>
</httpHandlers>
注:这里值得注意的是add的先后顺序,很简单的原理,通过这个配置文件请求首先要到我们自定义的httpHandler块,如果不在我们指定的path里,则走系统的PageHandlerFactory; 还有一个要注意的地方就是,这里当
<add path="html/*.html" verb="*" type="AutoModuleService.AutoHandlerFactory,AutoModuleService" validate="true"/>
指明路径后,并不像下级目录继承,也就是当用户浏览html/vip/index.html时,被系统的System.Web.UI.PageHandlerFactory正常处理;如果需要继承指明路径下包括下级目录所有*.html的话,则就需要做些修改了
修改方法:
上面的1和2照做;
3、在web.config文件中<system.web>节点下添加code:
<httpHandlers>
<add path="*.html" verb="*" type="System.Web.UI.PageHandlerFactory" validate="true"/>
</httpHandlers>
4、在web.config文件中<configuration>节点下使用<location>节点,添加code:
<location path ="html">
<system.web>
<httpHandlers>
<add path="*.html" verb="*" type="AutoModuleService.AutoHandlerFactory,AutoModuleService" validate="true"/>
</httpHandlers>
</system.web>
</location>
最后补充两点:
如果你用到的后缀类型是一种古怪的后缀。
比如:*.aaa *.csdn 等这样的后缀,
在IIS6 中,你需要额外再多做一步:
在IIS的站点属性->HTTP头->MIME类型中增加一个该后缀的MIME类型,不然遇到该后缀的请求时将首先被IIS给拦截掉,没办法显示的。
相关文章推荐
- IIS配置.html的映射后无法访问.html文件(学习收藏)
- IIS虚拟目录内的视频文件访问出错:HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
- UrlRewritingNet 实现URL重写 映射 真实的.html(例如FCKeditor)无法访问的解决方法
- 如何解决备份访问映射配置错误无法访问的问题
- Hibernate映射文件配置错误导致整个系统无法访问
- windows10配置IIS后无法访问根目录外的其他目录
- .net解决iis无法访问磁盘映射
- IIS HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效
- vs2010 未能连接到http...出现以下错误: 无法创建网站http...若要访问本地 IIS 网站,必须安装下列 IIS 组件:IIS 6 元数据库与 IIS 6 配置的兼容性
- [Web]配置IIS,启动失败“另一个程序正在使用此文件,进程无法访问”
- IIS 中 "另一个程序正在使用此文件,进程无法访问!" http://www.cnblogs.com/publicbill/archive/2007/05/29/763844.html
- win7下iis配置网站外网无法访问
- IIS中遇到无法预览的问题(HTTP 错误 401.3 - Unauthorized 由于 Web 服务器上此资源的访问控制列表(ACL)配置或加密设置,您无权查看此目录或页面。)
- IIS配置.html的映射问题
- iis,配置好网站无法访问问题
- 您不具备查看该目录或页面的权限,因为访问控制列表(ACL)对Web服务器上的该资进行了配置-关于IIS新追加文件无法访问的原因
- Web Application Project is configured to use IIS. Unable to access the IIS metabase.(配置为使用IIS Web应用程序xxxx项目。无法访问IIS元数据库。)
- XP专业版中安装了IIS,配置好之后只能访问静态htm网页,图片之类的,但是ASP 文件确不能读取,提示无法显示网页提示
- 不在iis里配置html映射也可实现html伪静态重写