关于伪静态,其实就是重写URl,之前也不清楚怎么配置IIS,在项目中用VS运行很正常,当将网站发布后,在IIS中伪静态就失效了,不能访问,会报出404(不存在)的错误等其他的错误提示,今天在网上逛了几个小时 搜遍了
,最后都是失败,网上大多数是在IIs6.0 以及更低版本上的配置,但在IIS7.0 以上的版本就不行了,不多说,直接正题:
首先你要在你的项目里引用两个DLL:

URLRewriter.dll
ActionlessForm.dll
真正实现重写的是URLRewriter.dll 但是如果你要实现分页,那么必须使用这个ActionlessForm .dll
一.添加URLRewriter.dll
1.(保证伪静态可以在vs项目中运行)下载一个URLRewriter.dll 程序集,
下载地址3: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" />
<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>
<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>
<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>
<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" />
<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 名称:任意,比如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.测试
二.添加ActionlessForm.dll
1.添加ActionlessForm.cs类
<!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->namespaceActionlessForm{
publicclassForm:System.Web.UI.HtmlControls.HtmlForm
{protectedoverridevoidRenderAttributes(HtmlTextWriterwriter)
{
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);
}}}
publicclassForm:System.Web.UI.HtmlControls.HtmlForm
{protectedoverridevoidRenderAttributes(HtmlTextWriterwriter)
{
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" %> 然后,将 <form runat="server">(如果有)替换为: <skm:Form id="Form1" method="post" runat="server"> 并将右边的 </form> 标记替换为:</skm:Form>
成功!
相关推荐
本文将详细介绍如何在ASP.NET环境中实现伪静态以及在IIS7.0上进行配置。 首先,`UrlRewriter.dll`是微软的UrlRewrite模块的一个组件,用于处理URL重写规则。这个库使得开发者能够自定义URL,将动态请求映射到实际的...
在Windows 7操作系统中安装和部署ASP.NET程序到IIS7.0是一个常见的任务,尤其对于使用Visual Studio 2010的开发者来说。本文将详细介绍这个过程,并解决遇到的一些典型问题。 首先,确保IIS7.0已启用。这可以通过...
在Win7环境下,IIS7.0提供了一个全新的管理控制台,采用GUI图形界面,使得配置和管理IIS变得更加直观和便捷。用户可以通过控制台进行站点创建、配置、权限设置、日志管理等一系列操作。 【安全性增强】 IIS7.0增强...
在Windows Server 2008操作系统中,Internet ...在《Windows2008操作系统配置IIS7.0配置》提供的"Windows2008操作系统配置+IIS+7.0+步骤.xlsx"文件中,可以找到更详细的步骤和指导,帮助您更好地完成配置工作。
《PHP在IIS7.0下的应用介绍》是PHP与ASP.NET 2.0开发系列课程的第二部分,旨在帮助开发者理解如何在Windows环境中的IIS7.0服务器上部署和运行PHP应用程序。这一课程涵盖了从安装配置PHP到实际操作实践的全过程,旨在...
在Windows Server 2008操作系统中,IIS7.0(Internet Information Services)是微软提供的一个强大的Web服务器,用于托管各种网站和Web应用程序。本文将详细介绍如何配置WIN2008下的IIS7.0WEB系统。 首先,我们需要...
在这个课程中,我们将重点关注IIS 7.0如何通过模块化架构、自定义模块以及与其他微软技术的集成,来提供强大的功能扩展能力,以满足不同开发者和企业的需求。 IIS 7.0的可扩展性首先体现在其模块化设计上。与之前的...
对于开发人员,IIS7.0支持多种Web应用程序框架,如ASP.NET、PHP和Python,满足不同语言和技术栈的需求。同时,它还引入了FastCGI技术,提高了动态内容处理的性能,尤其是对于PHP应用。 在性能优化方面,IIS7.0引入...
这些组件可以通过ISAPI(Internet Server API)扩展进行自定义,以实现特定功能,如压缩、静态文件处理、ASP.NET支持等。ISAPI有集成模式和兼容模式,集成模式将.NET相关功能直接融入IIS核心,提供一致的运行时体验...
在本教程中,我们将深入探讨IIS7.0的主要特性和开发人员需要了解的关键知识点。 一、IIS7.0的核心改进 1. 组件化架构:与之前的版本相比,IIS7.0采用了模块化的组件设计,允许开发者按需安装和配置功能,提高了...
- 对于IIS7.0及以上版本,可以通过修改`web.config`文件来配置伪静态URL。 - 在`web.config`文件中添加以下配置代码: ```xml *" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\...
在安装和使用过程中,用户需要注意服务器环境的配置,例如IIS(Internet Information Services)的设置,以及数据库的连接和配置。ASP程序通常需要与数据库配合,如Access或SQL Server,来存储论坛数据,如用户信息...
在IT行业中,尤其是在服务器管理和Web应用部署的领域,我们经常遇到各种问题,特别是在Windows系统上使用IIS(Internet Information Services)作为Web服务器时。这里,我们将深入探讨如何解决"win7+iis7.0"环境下...
在IT领域,尤其是在服务器配置和Web应用部署方面,"isapi_redirect-1.2.14.exe安装版 iis7.5+tomcat7.0整合"是一个关键的主题。这个标题涉及的是如何将Microsoft的IIS (Internet Information Services) 7.5版本与...
经典模式中,错误处理和其他一些功能可能会重复,因为IIS和ASP.NET都有自己的实现。尽管经典模式无需修改web.config就能运行旧版网站,但它的局限性在于处理默认文档和自定义配置时需要依赖aspnet_isapi.dll,且性能...
- 在“选择服务器角色”界面,勾选“IIS Web服务器角色”以及可能需要的子角色和服务,如ASP.NET、FTP服务等。 - 在“选择功能”页面,如果解压的sxs文件包含额外所需的组件,确保选择它们。 - 在“确认安装选择...
- `w3wp.exe`:IIS 7.0及更高版本中处理ASP.NET请求的进程。 - `w3wp.exe`(或`w3wq.exe`在IIS 6.0中):用于处理HTTP请求的工作进程。 - `aspnet_wp.exe`:早期版本中用于处理ASP.NET请求的专用进程。 #### 处理...
在IIS 7.0上部署ASP.NET网站涉及多个步骤,包括环境配置、应用程序池设置、网站创建、绑定配置等。下面将详细介绍这个过程中的关键知识点。 首先,确保你的服务器已经安装了IIS 7.0及其所需的ASP.NET支持。这可以...
- **集成管道模式**:IIS 7.0引入的处理模式,将ASP.NET请求处理集成到IIS核心管道中,提高了性能和可配置性。 - **aspnet_regiis工具**:这是.NET框架的一部分,用于管理和配置ASP.NET的IIS设置,包括注册和反注册...
3. **性能优化**:通过预编译ASP.NET页面、缓存策略和多线程处理,IIS 6.0显著提升了服务器响应速度和并发处理能力。 4. **管理工具**:IIS 6.0提供了直观的管理界面,管理员可以通过控制台进行各种配置,如站点...