IIRF IIS6 重写在Framework2.0 升级Framework4.0
2011-06-13 13:08
197 查看
最近把原来的网站项目2.0升级到了4.0,网站发布时发现原来的伪静态除了详细页面等一些有后缀的页面能正常访问外,其余页面均找不到页面地址,报404错误。除了Framework版本不一样,其余没有任何修改。
最终在博客园看到有前辈分析原因如下:
ASP.NET 4.0在安装的时候,会在IIS6注册一个ISAPI Filter,叫做”aspnet_filter.dll”,ISAPI Filter会先于ISAPI处理程序前执行,它会在所有的的无后缀的URL后面加一串字符“/eurl.axd/GUID”, 同时ASP.NET 4.0还会在IIS默认添加一个请求映射规则“*.axd”,映射到aspnet_isapi.dll。此时,所有的无后缀URL加上“/eurl.axd/GUID”后都会变成带.axd后缀,这样就匹配*.axd的映射规则进行ASP.NET的处理通道。在进入ASP.NET通道后,ASP.NET处理程序会删除掉“/eurl.axd/GUID”,让它还原到无后缀的原始情况,并且不会对后续的请求处理带来任何影响。此时,所有的无后缀请求,就进入了ASP.NET的处理通道中,在默认情况下,ASP.NET4.0的全局的web.config中配置了DefaultHttpHandler来接收无后缀的URL请求,但是我们也可以随意更换默认处理程序(比如ASP.NET MVC处理程序)来处理无后缀的URL请求。
既然找到原因了,那么问题解决起来就没那么棘手了。
解决方案:
1、命令:regedit打开注册表,找到路径: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/ASP.NET/4.0.30319.0
2、新建字符串值,取名:EnableExtensionlessUrls,并设置值为0
3、保存之后关闭注册表,并重启IIS,以读取新的注册表信息。
问题解决。欢迎拍砖,共同进步。
最终在博客园看到有前辈分析原因如下:
ASP.NET 4.0在安装的时候,会在IIS6注册一个ISAPI Filter,叫做”aspnet_filter.dll”,ISAPI Filter会先于ISAPI处理程序前执行,它会在所有的的无后缀的URL后面加一串字符“/eurl.axd/GUID”, 同时ASP.NET 4.0还会在IIS默认添加一个请求映射规则“*.axd”,映射到aspnet_isapi.dll。此时,所有的无后缀URL加上“/eurl.axd/GUID”后都会变成带.axd后缀,这样就匹配*.axd的映射规则进行ASP.NET的处理通道。在进入ASP.NET通道后,ASP.NET处理程序会删除掉“/eurl.axd/GUID”,让它还原到无后缀的原始情况,并且不会对后续的请求处理带来任何影响。此时,所有的无后缀请求,就进入了ASP.NET的处理通道中,在默认情况下,ASP.NET4.0的全局的web.config中配置了DefaultHttpHandler来接收无后缀的URL请求,但是我们也可以随意更换默认处理程序(比如ASP.NET MVC处理程序)来处理无后缀的URL请求。
既然找到原因了,那么问题解决起来就没那么棘手了。
解决方案:
1、命令:regedit打开注册表,找到路径: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/ASP.NET/4.0.30319.0
2、新建字符串值,取名:EnableExtensionlessUrls,并设置值为0
3、保存之后关闭注册表,并重启IIS,以读取新的注册表信息。
问题解决。欢迎拍砖,共同进步。
相关文章推荐
- IIRF IIS6 重写在Framework2.0 升级Framework4.0
- IIS6 Framework2.0 升级Framework4.0 IIRF不能使用处理
- IIS6 Framework2.0 升级Framework4.0
- 解决C# framework2.0程序升级到framework4.0的问题
- Asp.net Mvc Framework在.net 2.0/IIS6下运行
- 使用.net framework 2.0用c#编写ActiveX控件(编写,部署,升级更新)
- 使用.net framework 2.0用c#编写ActiveX控件(编写,部署,升级更新)
- Asp.net Mvc Framework在.net 2.0/IIS6下运行,补全
- Asp.net Mvc Framework在.net 2.0/IIS6下运行,补全
- IIS6中给Framework2,。0站点的虚拟目录(2.0版本)下发布Web API项目(4.0版本)问题处理
- 从Framework2.0升级到4.0后document.form1 报错问题解决
- framework2.0升级3.5 excel 列名被剃掉
- II7下Framework2.0转为Framework4.0 部署后找不到aspx文件的错误
- Asp.net Mvc Framework在.net 2.0/IIS6下运行,程序示例
- 关于使用IIRF2.0 重写 导致 Cookie 不能在其它页面使用的问题
- 使用.net framework 2.0用c#编写ActiveX控件(编写,部署,升级更新)
- Spring Boot 2.0正式版发布啦,你准备好升级了吗
- 2.0升级3.0版本注意事项说明
- 将ASP.NET MVC 2.0 部署在IIS6和IIS7上的教程
- 解决OpenNETCF Smart Device Framework 2.0的Samples无法运行的问题