http://community.csdn.net/Expert/topic/5500/5500394.xml?temp=.7407648奇怪的问题本来在我的文件系统中测试是OK的
如他生成的地址
http://localhost:1914/UrlRewriteNet2/Defa
他会正确的改写为
http://localhost:1914/UrlRewriteNet2/Default.aspx?name=Defa
但我在IIS中加了网站就不行了
http://localhost:1708/Def
提示:
HTTP 错误 404 - 文件或目录未找到。
Internet 信息服务 (IIS)
我设置了断点发现
他没有去执行
void context_BeginRequest(object sender, EventArgs e)
这里的语句而文件系统的那个就有这是怎么回事

解决方案 »

  1.   

    http://localhost:1708/Def你有没有把当前站点作为iis的目录?
      

  2.   

    应该和虚拟目录有关设置了虚拟目录,那么URL的地址就改变,这个重写是以正则为基础的,这种改变应该会引起处理问题关注了几天,个人理解,说错勿怪~
      

  3.   

    1.iis本身并不能处理没有扩展名的文件,在你的程序取得请求地址后,需要指定到一个存在的页面去处理。
    2.将iis中站点属性-》主目录-》配置-》在[通配符应用程序映身]边的上[插入]-》选择c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll应该就可以了
    环境:vs2005,iis6
      

  4.   

    http://localhost:1708/Def
    http://localhost:1708/
    这是我的网站
    Def是我随便输入想让改写为
    http://localhost:1708/Default.aspx?name=Def
    但出错但原来的虚拟目录又可以
      

  5.   

    http://localhost:1708/
    你的所有文件都是在这个根目录下吗?web.config也是吗?
    如果不是肯定是不行的.
      

  6.   

    错了..是这样的
    我程序开始使用的是文件系统
    那么
    http://localhost:1708/Def.aspx
    会改写为http://localhost:1708/Default.aspx?name=Def.aspx
    http://localhost:1708/Def
    会改写为http://localhost:1708/Default.aspx?name=Def但如果做为虚拟目录或网站的时候
    http://localhost:1708/Def.aspx
    会改写为http://localhost:1708/Default.aspx?name=Def.aspx
    http://localhost:1708/Def
    这里就出错提示:
    HTTP 错误 404 - 文件或目录未找到。
    Internet 信息服务 (IIS)
      

  7.   

    两者程序都是一样的不一样的是一个是以文件系统打开
    一个是以本地IIS打开
    但文件系统就一切正常
    但本地IIS打开的话
    def.aspx就可以改写
    def 这样就说找不到文件
      

  8.   

    用VS2005新建一个网站的时候
    位置有三个选择
    1:文件系统
    2:HTTP
    3:FTP文件系统的话VS2005会自己虚拟一个IIS给他就不用去配置IIS
    后来测试完代码OK后我就在IIS里面建立一个网站把网站的主目录指到这个程序目录用VS2005打开网站 --> 选择刚才创建的网站
    运行就出现上面的问题
    PS: 这里文件系统 和 IIS网站 都是在同一个目录下面 同样的文件
      

  9.   

    可以是设置成网站以后
    那个ISAPI筛选器的问题在文件系统中
    打入def  def.aspx  def.aspm def.107  这些都可以改写
    但在网站中
    打入def  def.aspx  def.aspm def.107  只有def.aspx可以改写其他的都不可以
      

  10.   

    应该是站点的问题.通过文件系统打开,运行时,他会有一个自己的服务器webdev的那个.在这个服务器中任何输入的地址都会用asp.net来解析而iis就没有.
      

  11.   

    是在 IIS中只有.aspx是可以的其他的都不行
    是不是ISAPI筛选器 映射问题啊
      

  12.   

    你在iis虚拟目录或主目录的属性当中,配置.下面有"通配符应用程序映射"添加可执行文件为2.0的文件例如:
    c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll注意,去掉"确认文件是否存在"选项.