iis5.1/6.0/7.0+ 配置url重写 无扩展名伪静态

来源:互联网 发布:windows.old删不干净 编辑:程序博客网 时间:2024/04/29 11:07

最近在搞url重写 遇到iis 无扩展名及html映射问题 供后人查看

因为考虑功能比较多(URLRewriter组件有些功能满足不了要求)所以就用了HttpModule方法重写。


iis5.1

添加应用程序映射 .* (注意 这种方法只有5.1中可以)到 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 确定文件是否存在去掉 即可



iis6.0

搜了大量文章 都不可以 ,终于看到一篇文章 在通配符应用程序映射插入isapi.dll文件映射 如图:

 

重新启动iis 目录映射就起作用了(据说很耗服务器资源)

 


 iis7.0+

下面来说 iis7.0+以上的 版本 这个比较繁琐 但是很简单 不像 iis6.0我找了很久才找到方法


  

1) 首先新建一个应用程序池,名称任意,比如:Myweb,托管管道模式先暂时设置为集成模式;

 

 

2) 部署好站点,并将此站点的应用程序池设置为Myweb;

 

 

3) 选中站点,切换到功能试图,找到 "服务器组件"-> "处理程序映射",双击之后,在打开窗口右侧的操作栏目下做如下设置:

4)"添加脚本映射":请求路径 .html ,可执行文件选择 C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll ,名称随意;

 

 
5)"添加通配符脚本映射":请求路径 * ,可执行文件为:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,名称随意;

 

 
6)"添加托管处理程序":请求路径 *,可执行文件:System.Web.UI.PageHandlerFactory,名称随意;

 


7) 打开站点切换到功能试图,找到 "服务器组件"->"模块",双击之后,在打开窗口右侧的操作栏目中,点击"添加托管模块",类型

设置自己的HttpModel 模块,并且把"仅针对向asp.net 应用程序或托管处理程序发出请求调用" 选中;

 

 

 

8)最后,找到我们第一步建立的应用程序池Myweb,将托管管道模式设置为经典模式。

重新启动 网站  查看

 

原文:http://www.cnblogs.com/diose/archive/2013/02/21/2920324.html


重启之后如出现以下问题:

System.UnauthorizedAccessException: 拒绝访问 temp 目录。用来运行 XmlSerializer 的标识“NT AUTHORITY\NETWORK SERVICE”没有访问 temp 目录的足够权限。CodeDom 将使用进程正在使用的用户帐户进行编译,这样,如

解决方案:IIS的应用程序池权限不够,应用程序给localsystem账号权限即可。

以客户的服务器系统2003sp2为例,修改步骤如下: 控制面板---管理工具--Internet 信息服务(IIS)管理器--应用程序池---Myweb--设置---标识---修改为:本地系统---应用---确定-电脑重启


参考:http://www.cnblogs.com/sunxi/p/3356719.html
0 0
原创粉丝点击