NET4.0下web应用程序用UrlRewriter重写无后缀路径

示例环境:VS2010

要求:

重写前:http://localhost:13275/Default.aspx?username=wilson

重写后:http://localhost:13275/wilson

第一步:下载相关DLL(ActionlessForm.dll和UrlRewriter.dll)

下载链接一: http://download.111cn.net/detail/porschev/3704868

下载链接二: http://files.cnblogs.com/zhongweiv/Lib.rar

第二步:VS2010创建测试网站应用程序,并添加以上DLL的引用

PS: 操作步骤省略,我想都会

第三步:在项目中添加asp.net文件(App_Browsers)

App_Browsers这个我们比较少用

App_Browsers文件夹包含.browser文件,.browser文件是XML文件,可以标识向应用程序发出请求的浏览器,并理解这些浏览器的功能。

在C:WindowsMicrosoft.NET Frameworkv2.0.50727CONFIGBrowsers中有一个可全局访问的.browser文件列表。另外,如果要

修改这些默认的浏览器定义文件,只需将Browsers文件夹中的对应.browser文件复制到应用程序的App_Browsers文件夹,修改其定义即可。

如果对这些Asp.Net文件夹了解不多可以看看这篇文章,相信很有帮助

http://blog.111cn.net/icecityman/article/details/4748018

1.选择项目--->右键添加--->添加asp.net文件夹--->App_Browsers

2.在App_Browsers下创建Form.browser文件

 

 代码如下 复制代码

            <browsers>
                   <browser refID="Default">
                        <controlAdapters>
                              <adapter controlType="System.Web.UI.HtmlControls.HtmlForm"
                                     adapterType="URLRewriter.Form.FormRewriterControlAdapter"/>
                         </controlAdapters>
                   </browser>
            </browsers>

PS: refID:不可以与ID和arentID同时存在

第四步:配置web.config

1 .在configuration节点下添加

 

 代码如下 复制代码

             <configSections>
                     <section name="CustomConfiguration" type="URLRewriter.Config.UrlsSection, URLRewriter"/>
             </configSections>
 
             <CustomConfiguration>
                    <urls>
                         <!--([w]+)表示,1到n个字母或数字或下划线或汉字组成-->
                         <add virtualUrl="~/([w]+)*" destinationUrl="~/Default.aspx?username=$1"/>
                    </urls>
             </CustomConfiguration>

PS:正则的部分,要根据不同的规则去写,如果有不会的,可以留下详细规则,我看到后会尽快回复!! 

2.在System.web节点下添加

 代码如下 复制代码

             <httpModules>
                    <add type="URLRewriter.RewriterModule, URLRewriter" name="RewriterModule"/>
             </httpModules>

解释一下httpModules的的Add节点属性:

type:HttpModule的标识号和类库名称

name:取一个较为友好的名称

第五步:测式

1.在项目Default.aspx.cs文件Load事件中加入 

            if (!IsPostBack)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("当前所在位置:Default.aspx<br/>");
                if (!string.IsNullOrEmpty(Request.Params["username"]))
                {
                    sb.Append("所接收到的参数username:" + Request.Params["username"]); 
                }
                Response.Write(sb.ToString());
            }

这里的测试主要是测试直接用重写后规则访问,看是否访问成功,并测试是否能够接收到username参数 

还有输入重写前的地址,是否能访问成功

测试一:找开----->http://localhost:13275/Default.aspx 

结果(aspx页输出)------>当前所在位置:Default.aspx 

 

测试二:找开----->http://localhost:13275/wilson

结果(aspx页输出)------>当前所在位置:Default.aspx
所接收到的参数username:wilson

 

第六步:在IIS7.5里配置

完成前五步后,直接运行VS可以重写成功,但发布在IIS中时就会有相应的错误,这样需要配置一下IIS

直接运行http://localhost:8111/

    错误截图

配置方法:

 

二、添加通配符脚本映射,选择:C:WindowsMicrosoft.NETFrameworkv4.0.30319aspnet_isapi.dll

三、找到和网站相对的连接池,选择framework 4.0  经典模式

 

四、选择应用程序连接池,高级设置,启用32位应用程序,设为true

时间: 2024-11-01 20:51:15

NET4.0下web应用程序用UrlRewriter重写无后缀路径的相关文章

利用JSP 2.0开发Web应用程序1

js|web|程序 JSP(JavaServer Pages)技术是对Servlet的进一步抽象,它由JCP(Java Community Process)开发,是用于生成动态内容的开放式的.可免费获取的规范,也是J2EE(Java 2 Enterprise Edition)规范的重要组成部分.许多商业应用服务器如BEA WebLogic.IBM WebSphere.Live Jrun和Orion都支持JSP技术. 从机票预订系统.银行系统到购物系统,Web上到处都在应用JSP技术.新发布的2.

利用JSP 2.0开发Web应用程序

js|web|程序 JSP(JavaServer Pages)技术是对Servlet的进一步抽象,它由JCP(Java Community Process)开发,是用于生成动态内容的开放式的.可免费获取的规范,也是J2EE(Java 2 Enterprise Edition)规范的重要组成部分.许多商业应用服务器如BEA WebLogic.IBM WebSphere.Live Jrun和Orion都支持JSP技术. 从机票预订系统.银行系统到购物系统,Web上到处都在应用JSP技术.新发布的2.

ASP.NET 2.0中WEB应用程序的部署

在我们建立完一个WEB应用程序后,我们就要考虑如何进行部署和发布.一般 情况下,尽可能将安装简单化,以使用户有非常好的用户体验.但有的情况下, 可能对安装程序的要求比较高,比如有时要将一些安装配置信息写到注册表中去 .而对于一个WEB应用程序,该如何安装部署呢?这和安装部署一个普通的 WINFORM下的应用程序有些不同.以往,对于WEB应用程序的安装部署总是十分困 难的,但自从ASP.NET 1.1起,直到现在出现的ASP.NET 2.0,安装部署WEB应用程 序将变得十分简单方便.本文将着重介

WebSphere Liberty Profile Server8.5.5.0部署web应用程序的疑问

问题描述 最近在摸索在eclipse上安装WebSphereLibertyProfileServer插件后,部署web应用程序,但在部署的过程中有以下几个疑点需要大家帮忙解决下,请大神给个解决方法的思路或者是方向:1.部署web应用后,启动服务器同时也会启动web应用程序,这时候我发现在Console下方会出现这样的字样:[WARNING]SRVE9967W:在JAR文件file:/F:/Wlp-Server/usr/servers/defaultServer/apps/project_jt1/

Atlassian Bonfire 2.0发布 Web应用程序测试工具

Atlassian Bonfire 是JIRA的一个附加组件,用于帮助http://www.aliyun.com/zixun/aggregation/9621.html">测试人员在测试Web应用程序时报告错误.测试人员使用浏览器扩展来提交带有注释截图的错误.可以使用模板预填充静态和动态的元数据,测试会话能够记录所有测试活动,并允许测试人员链接新发现的问题到原来的错误.该工具支持 Firefox.IE.Chrome 和 Safari. Atlassian Bonfire 2.0该版本支持分

fastcgi++ 2.0发布 Web应用程序开发的C++库

fastcgi++ 是一个基于FastC++GI协议的Webhttp://www.aliyun.com/zixun/aggregation/13521.html">应用程序开发的C++库.该库不支持旧CGI协议,它能够有效管理同步请求,而不需要多个线程.会话数据被组织成有意义的数据类型,作为一系列对照的文本字符串.支持国际化和Unicode,模板化库允许内部使用宽字符,转换为UTF-8传输到客户端. fastcgi++ 2.0该版本是稳定版本. 软件信息:http://www.nongnu

利用JSP 2.0开发Web应用程序2

js|web|程序 标签处理器 JSP 1.2中传统的标签处理API由于允许标签体中包含scriptlet而变得复杂,但是现在利用表达式语言可以编写不含scriptlet的JSP网页.最终,JSP 2.0引入了一种新的标签扩展机制,称为"简单标签扩展",这种机制有两种使用方式: Java开发人员可以定义实现接口javax.servlet.jsp.tagext.SimpleTag的类; 不懂Java的网页编写人员则可以使用标签文件. 首先来看第一种方式,代码示例6给出了一个简单的标签处理

WEB应用程序中的进度条

web|程序 WEB应用程序中的进度条 Julien Cheyssial 写作于2003/10/01 Joise.LI翻译并修改于2004-4-2 写在前面: 原文是我在需要使用进度条时找到的一篇文章,讲解详细并附有实例.我在原文的基础上加上了自己的修改:增加了线程处理并且将进度条的使用放到了子线程中处理.这是我第一次翻译文章,敬请各位指正.原文见于http://www.myblogroll.com/Articles/progressbar/,请对照参考. 谁说在WEB应用程序中不能使用进度条?

《圣殿祭司的ASP.NET4.0专家技术手册》----2-2 静态与动态语言的比较

2-2 静态与动态语言的比较 圣殿祭司的ASP.NET4.0专家技术手册程序语言若按照类型检查的时机来划分,可分为: 静态语言(statically typed languages).若一种程序语言的类型检查(Type Checking)工作是发生在编译时期(Compile Time),则称为静态语言.C#与Java都是静态语言代表,程序编写时必须使用明确的类型声明,编译的当下,编译程序就会进行类型检查,且变量或对象的类型一旦声明后,在运行时就无法任意更换类型,否则会发生Exception错误.