本地用vs2008测试的时候没问题 放到iis里的话 就不支持伪静态了
.需要怎么设置?

解决方案 »

  1.   

    URLRewriter.dll这东西要添加到IIS
      

  2.   

    在iis里的ISAPI筛选器添加:
       路径                                                              名称
    1.C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll    ASP.Net_2.0.50727.0
    2.C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll    ASP.Net_2.0_for_V1.1
    3.C:\urlrewriter\UrlRewriter.dll(这个文件必须在C盘根目录)            urlwriter
      

  3.   

    使用说明:(重点在Web.config中的<RewriterConfig>节点)
    一、把文件夹中的URLRewriter.dll拷到项目的Bin目录下,并添加一下引用二、打开Web.config文件,加三个节点
    1.这个节点,在创建成Ajax网站时就已经有了,只要把里面的那一节加进去就OK了
    <configSections>
    <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
    </configSections>2.这一节点就写在</configSections>下面就好了,在Web.config里的智能提示中没有这个节点
    <RewriterConfig>
        <Rules>
          <RewriterRule>
    <!--这个节点表示在根目录下访问index.html,比如说http://localhost/website/index.html,这个时候就会与这一项匹配-->
    <!--如果地址是http://localhost/website/aaa/index.html,这个时候就不会与这一项匹配-->
    <!--这个使用的时候,页面名称可以随便换,这里叫index.html,也可以叫成aaa.html,bbb.html,只要在访问、超链接、转向等时候写的是这个地址就可以了-->
    <!--如果这个节点里写的是~/abc/list.html的话,那和访问路径就应该是http://localhost/website/abc/list.html-->
    <!--
    这里有一个最大的好处,不用考虑参数,比如说,我在index.html(Default.aspx)里有一个a标签,转到Default2.html(Default2.aspx)
    并且带了参数<a href="Default.html?id=3&cid=7">go</a>
    可以看到,下面那一节的配置方法还是这样写,不用考虑参数,参数就参传过去,也就是说在Default2.html(Default2.aspx)的cs文件里
    还是像以前一样去得到参数就可以了Request.QueryString["id"],Request.QueryString["cid"]
    -->
            <LookFor>~/index.html</LookFor>
    <!--这里就是上面这个地址指向的项目中真实的页面位置,这个就没有什么好多说的,把位置写正确才最重要的-->
            <SendTo>~/Default.aspx</SendTo>
          </RewriterRule>
    <!--有多个节点就再写一对就好了-->
          <RewriterRule>
            <LookFor>~/Default2.html</LookFor>
            <SendTo>~/Default2.aspx</SendTo>
          </RewriterRule>
        </Rules>
    </RewriterConfig>3.这个节点,在创建成Ajax网站时就已经有了,只要把里面的那二节加进去就OK了
    <httpHandlers>
    <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
    <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
    </httpHandlers>三、到此就结束了,在开发过程中,还是和以前一样,只是把访问路径的文件名由.aspx改成.html就可以了。
    这里最重要的就是访问路径的配置,我的习惯就是aspx文件是什么样的路径,那html也是什么样的路径,这样写特别是对于已经开发过一段时间的项目来说
    只要Web.config里这样对应起来去写,在页面上,只要把所的有.aspx改成.html就可以了!!
    注意:如果用替换的方法的话,请在替换完成后,把Page指令里的CodeFile的值还改回XXX.aspx.cs,否则会出错四、这里要说说IIS了,因为本地在开发的时候在Bin里面有dll文件,所以没事,但是放到IIS下就不行了,所以IIS在有一些操作
    IIS 6.0:
    选择要操作的网站,右键-属性-在第一个选项卡中点“配置”-添加-浏览-'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll'-扩展名为:.html
    -把'检查文件是否存在'去掉。一路再“确定”回去就好了。IIS 7.0:
    选择要操作的网站,在右边视图中找到'处理程序映射'-在右边'添加脚本映射'
    请求路径:*.html
    可执行文件:'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll'
    名称:自己看着写吧
    然后确定就好了
    最后说明一下,这样去配置伪静态的时候,会对原本的html文件有影响,所以,如果当有这种情况,特别是在使用ckeditor和ckfinder的时候,一定要在
    web.config里再去配置一个节<buildProviders>,配置的位置是在<compilation debug="true">这里面
    <compilation debug="true">
          <assemblies>
            ......
          </assemblies>
          <!-- 加上此节点,保证原本就是.html类型的文件能正常访问,就是要加下面的这一节-->
          <buildProviders>
            <add extension=".html" type="System.Web.Compilation.PageBuildProvider" />
          </buildProviders>
    </compilation>
      

  4.   

    http://download.csdn.net/detail/evasunny2008/2097705
    这里是我的一个例子,可以参考一下。。
      

  5.   

    先把IIS应用程序池的托管管理道模式为集成(为了可以做第3,4步)
               首先在IIS中的站点里,找到处理程序映射。双击进去
               1、添加脚本映射(路径:*.html 可执行文件%windir%Microsoft.NETFrameworkv2.0.50727aspnet_isapi.dll 名称:任意,比如Html )
               2、添加通配符脚本映射(路径:* 可执行文件:C:\Windows\Microsoft.NET\Frameworkv2.0.\50727\aspnet_isapi.dll 名称:任意,比如All)
               3、托管处理程序映射(路径:*.html 可执行文件:System.Web.UI.PageHandlerFactory 名称 任意 比如Html-Integrate)
               4、IIS中找到模块(双击进去)-->添加托管模块---->(名称:任意 如All 类型:URLRewriter.ModuleRewrite
    把 仅针对向asp.net 应用程序或托管处理程序发出请求调用 勾上
               5、将应用程序池的托管管理道模式为经典