环境是ASP.Net4.0 WebForm,Win7的IIS集成模式
我路由是
routes.MapPageRoute("Aclass",
    "{Aclass}/{Aid}.html",
    "~/Article.aspx");
http://127.0.0.1/jishu/1.html出现404找不到物理路径的错误
把路由改成routes.MapPageRoute("Aclass",
    "{Aclass}/{Aid}_html",
    "~/Article.aspx");
http://127.0.0.1/jishu/1_html是可以的。也就是把.html的.改成其他符号路由就可以了。唯独是.不行。

解决方案 »

  1.   

    你可以这样测试
    把.html扩展名,映射到asp.net处理程序去处理,静态文件直接由IIS返回了,
      

  2.   

    也就是处理程序映射
    http://technet.microsoft.com/zh-cn/library/cc771240%28v=ws.10%29.aspx
    IIS中处理程序映射-->
    添加脚本映射(路径:*.html  可执行文件%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll  名称:任意,比如Hml )
    添加通配符脚本映射(路径:*  可执行文件:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll  名称:任意,比如All)
    托管处理程序映射(路径:*  可执行文件:System.Web.UI.PageHandlerFactory 名称 任意 比如Html-Integrate)-------->
    IIS中 模块-->添加---->(名称:任意 如All  类型:URLRewriter.ModuleRewriter 把 仅针对向asp.net 应用程序或托管处理程序发出请求调用  勾上  ok )
      

  3.   

    我映射了。在web.config里面生成了    <system.webServer>
            <handlers>
                <add name="All" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
                <add name="html" path="*.html" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
            </handlers>
        </system.webServer>
    但还是不能访问。HTTP 错误 404.0 - Not Found
    您要找的资源已被删除、已更名或暂时不可用。 详细错误信息模块 IIS Web Core 
    通知 MapRequestHandler 
    处理程序 StaticFile 
    错误代码 0x80070002 
    请求的 URL http://127.0.0.1:80/jishu/2.html 
    物理路径 F:\站点\jishu\2.html 
    登录方法 匿名 
    登录用户 匿名 
      

  4.   


        <system.webServer>
            <handlers>
                <add name="*.html" path="*.html" verb="*" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" />
                <add name="All" path="*" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
            </handlers>
            <validation validateIntegratedModeConfiguration="false" />
        </system.webServer>
    这样就行了。【孟子E章】谢谢您。