ASP.NET伪静态页面的实现和伪静态在IIS7.0中的配置

来源:互联网 发布:ping协议端口 编辑:程序博客网 时间:2024/05/16 09:11
关于伪静态,其实就是重写URl,之前也不清楚怎么配置IIS,在项目中用VS运行很正常,当将网站发布后,在IIS中伪静态就失效了,不能访问,会报出404(不存在)的错误等其他的错误提示,今天在网上逛了几个小时 搜遍了, 最后都是失败,网上大多数是在IIs6.0 以及更低版本上的配置,但在IIS7.0 以上的版本就不行了,不多说,直接正题:首先你要在你的项目里引用两个DLL: URLRewriter.dll  ActionlessForm.dll真正实现重写的是 URLRewriter.dll 但是如果你要实现分页,那么必须使用这个ActionlessForm .dll一.添加 URLRewriter.dll1.(保证伪静态可以在vs项目中运行)下载一个URLRewriter.dll 程序集,下载地址1:http://download.csdn.net/source/524514下载地址2:http://www.nmju.net/UserFiles/URLRewriter.rar下载地址3:download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi在项目中引用这个程序集,伪静态语法...(例把.aspx 的页面 用.html来表示,web.config文件中--> 添加 以下节点
~/cn/ss_(.[/d]*)0(.[/w]*).html ~/cn/ss_(.[/d]*)0(.[/w]*)0(.[/w]*).html 2.发布网站在IIS中运行你的网站-->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 )-->ok 3.测试 访问 http://localhost:8080/cn/ss_1.html其实访问的是http://localhost:8080/cn/news.aspx?id=1 二.添加ActionlessForm.dll 1.添加ActionlessForm.cs类namespace ActionlessForm {public class Form : System.Web.UI.HtmlControls.HtmlForm{protected override void RenderAttributes(HtmlTextWriter writer){writer.WriteAttribute("name", this.Name);base.Attributes.Remove("name");writer.WriteAttribute("method", this.Method);base.Attributes.Remove("method");this.Attributes.Render(writer);base.Attributes.Remove("action");if (base.ID != null)writer.WriteAttribute("id", base.ClientID);}}} 创建此类并对其进行编译之后,要在 ASP.NET Web 应用程序中使用它,应首先将其添加到 Web 应用程序的 References 文件夹中。然后,要 使用它来代替 HtmlForm 类,做法是在 ASP.NET 网页的顶部添加以下内容:<%@ Register TagPrefix="skm" Namespace="ActionlessForm" Assembly="ActionlessForm" %>然后,将
(如果有)替换为:并将右边的 标记替换为:
成功!
原创粉丝点击