首页  ·  知识 ·  云计算
ASP.NET伪静态在iis7.0中的配置
网友  其它 | http://www.msnova.net/cooperation/msnova.net/  综合  编辑:德仔   图片来源:网络
关于伪静态,其实就是重写URl,之前也不清楚怎么配置IIS,在项目中用VS运行很正常,当将网站发布后,在IIS中伪静态就失效了,不能访问,会报出404(
关于伪静态,其实就是重写URl,之前也不清楚怎么配置IIS,在项目中用VS运行很正常,当将网站发布后,在IIS中伪静态就失效了,不能访问,会报出404(不存在)的错误等其他的错误提示,今天在网上逛了几个小时 搜遍了, 最后都是失败,网上大多数是在IIs6.0 以及更低版本上的配置,但在IIS7.0 以上的版本就不行了,不多说,直接正题:
1.(保证伪静态可以在vs项目中运行)下载一个URLRewriter.dll 程序集,
下载地址1:http://download.csdn.net/source/524514
下载地址2:http://www.nmju.net/UserFiles/URLRewriter.rar
下载地址3:http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi
在项目中引用这个程序集,伪静态语法...(例把.aspx 的页面  用.html来表示,web.config文件中--> 添加 以下节点
<configSections>
    <section name="RewriterConfig" requirePermission="false" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<RewriterConfig>
  <Rules>
      <RewriterRule><!--一个参数->
        <LookFor>~/cn/ss_(.[\d]*)\.html</LookFor>
        <SendTo>~/cn/news.aspx?id=$1</SendTo>
      </RewriterRule>
<RewriterRule><!--传两个参数的-->
        <LookFor>~/cn/ss_(.[\d]*)0(.[\w]*).html</LookFor> <!--(.[\d]*)(.[\w]*).html  或者 ss_,(.[0-9]*),(.[0-9]*)\.html-->
        <SendTo><![CDATA[~/cn/news.aspx?id=$1&sid=$2]]></SendTo>
      </RewriterRule>
     <RewriterRule>三个参数
        <LookFor>~/cn/ss_(.[\d]*)0(.[\w]*)0(.[\w]*).html</LookFor> <SendTo><![CDATA[~/ZH-CN/news.aspx?id=$1&sid=$2&n_id=$3]]></SendTo>
      </RewriterRule>
 <httpHandlers>
      <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
      <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
 </httpHandlers>
<httpModules>
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
</httpModules>

2.发布网站在IIS中运行
你的网站-->IIS中处理程序映射-->
添加脚本映射(路径:*.html  可执行文件%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll  名称:任意,比如Html )
添加通配符脚本映射(路径:*  可执行文件: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 )
-->ok

3.测试

访问 http://localhost:8080/cn/ss_1.html
其实访问的是http://localhost:8080/cn/news.aspx?id=1

成功!

本文作者:网友 来源:其它 | http://www.msnova.net/cooperation/msnova.net/
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读