利用ASP.NET的httpHandlers来进行url rewirte进不可行了,因为在.NET处理ASPX页面前,IIS已经发现没有这个ASPX页面,而将http 404错误发给浏览器,并停止服务器端的执行,正常情况下应该是IIS不管ASPX页面是否存在都把执行流程交给.NET来处理,这时就可以执行HTTPHANDLERS,而不会出现404了。
这个错误的造成是因为IIS中的设置没弄好。如下设置即可纠正错误:
打开IIS的应用程序配置界面,修改其中的ASPX的应用程序扩展名映射。把其中的检查文件名是否存在前面的勾去掉。
具体步骤:打开IIS管理器右键点击某个网站,选择“属性”,点击到“主目录”选项卡,点击“应用程序设置”里面的“配置”按扭,打开“应用程序配置”对话框。选择其中的.aspx,点击“编辑”,把“确认文件是否存在”前面的勾去掉
使用操作系统: windows 2000,windows xp,window server 2003 的各个版本,IIS 5.1, IIS 6.0,ASP.NET
随便输入一个页面,比如:sdfdsf.aspx时,也是这样的IIS的http 404提示,而不是ASP.NET的http 404错误提示(正常情况应该是..NET的404错误提示)。
ASP.NET的http 404错误提示如下:
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
无法找到资源。
说明: HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。
请求的 URL: /sdfsdf.aspx