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

示例环境:VS2010

 

 

要求:

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

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

 

第一步:下载相关DLLActionlessForm.dll和UrlRewriter.dll)

                           下载链接一:   http://download.csdn.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:\Windows\Microsoft.NET\ Framework\v2.0.50727\CONFIG\Browsers中有一个可全局访问的.browser文件列表。另外,如果要
          修改这些默认的浏览器定义文件,只需将Browsers文件夹中的对应.browser文件复制到应用程序的\App_Browsers文件夹,修改其定义即可。
 
          如果对这些Asp.Net文件夹了解不多可以看看这篇文章,相信很有帮助
            
                        
          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:取一个较为友好的名称
 
用MSDN的截图来解释一下

      
 
 

第五步:测式

                  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://www.cnblogs.com/zhongweiv/archive/2011/10/29/UrlRewriter_IIS.html

 
 

接上一篇  .NET4.0下网站应用程序用UrlRewriter.dll重写无后缀路径


在IIS中新建网站(端口号8111)

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

    错误截图


.NET4.0下web应用程序用UrlRewriter.dll重写无后缀路径_第1张图片


配置方法:

.NET4.0下web应用程序用UrlRewriter.dll重写无后缀路径_第2张图片

 

二、添加通配符脚本映射,选择:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll

.NET4.0下web应用程序用UrlRewriter.dll重写无后缀路径_第3张图片


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

.NET4.0下web应用程序用UrlRewriter.dll重写无后缀路径_第4张图片

.NET4.0下web应用程序用UrlRewriter.dll重写无后缀路径_第5张图片

 


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

.NET4.0下web应用程序用UrlRewriter.dll重写无后缀路径_第6张图片



11 2011 档案

 
摘要: 什么是JS事件冒泡?:在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。(摘自网络)如何来阻止Jquery事件冒泡?通过一个小例子来解释<%@ Page Language="C#" AutoEventWireup="true" CodeFile=&quo 阅读全文
posted @  2011-11-04 10:02 porschev 阅读(1088) |  评论 (14)  编辑
 
摘要: 接上一篇 .NET4.0下网站应用程序用UrlRewriter.dll重写无后缀路径在IIS中新建网站(端口号8111) 直接运行http://localhost:8111/ 错误截图配置方法:二、添加通配符脚本映射,选择:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll三、找到和网站相对的连接池,选择framework 4.0 经典模式四、选择应用程序连接池,高级设置,启用32位应用程序,设为true 阅读全文
posted @  2011-11-02 10:20 porschev 阅读(148) |  评论 (2)  编辑
 
摘要: 示例环境:VS2010要求: 重写前:http://localhost:13275/Default.aspx?username=wilson 重写后:http://localhost:13275/wilson第一步:下载相关DLL(ActionlessForm.dll和UrlRewriter.dll) 下载链接一: http://download.csdn.net/detail/porschev/3704868 下载链接二: http://files.cnblogs.com/zhongweiv/Lib.rar第二步:VS20... 阅读全文
posted @  2011-11-02 10:18 porschev 阅读(1124) |  评论 (22)  编辑
 
摘要: CodeSmith 创建Ado.Net自定义模版(四)接上一篇: CodeSmith 创建Ado.Net自定义模版(三)编写业务逻辑层的模版:Step4_BLL.cst<%@ CodeTemplate Language="C#" TargetLanguage="C#" ResponseEncoding="UTF-8" Description="实体类" %><%@ Property Name="NameSpace" Type="System.String"  阅读全文
posted @  2011-11-01 18:00 porschev 阅读(80) |  评论 (0)  编辑
 
摘要: CodeSmith 创建Ado.Net自定义模版(三)接上一篇: CodeSmith 创建Ado.Net自定义模版(二)写数据访问层模版:Step3_DAL.cst (接口一这步在这套模版中省略,可以自行补充)写几个通用方法,比如:得到全部实体集合、通过ID得实体、添加、删除、修改几个方法我这里没有使用sqlhelper之类的帮助类<%@ CodeTemplate Language="C#" TargetLanguage="C#" ResponseEncoding="UTF-8" Description="实体类&qu 阅读全文
posted @  2011-11-01 17:58 porschev 阅读(75) |  评论 (0)  编辑
 
摘要: CodeSmith 创建Ado.Net自定义模版(二)接第一篇: CodeSmith 创建Ado.Net自定义模版(一)建立第二个C# Template:Step2_Model.cst(实体类模版)代码:<%@ CodeTemplate Language="C#" TargetLanguage="C#" ResponseEncoding="UTF-8" Description="实体类" %><%@ Property Name="NameSpace" Type="Sy 阅读全文
posted @  2011-11-01 17:51 porschev 阅读(897) |  评论 (0)  编辑
 
摘要: CodeSmith Ado.Net模版(一)(本文属于入门级,望高手见谅!哈哈)开始创建自己的ADO.NET模版本文使用CodeSmith Professional 5.0.1.4983进行编写首先,打开CodeSmith StudioCodeSmith中有两个EXE文件:CodeSmith Studio.exe和CodeSmith Explorer.exeCodeSmith Studio.exe:用来创建自定义模板CodeSmith Explorer.exe:用来导入模板并且生成代码一、创建一个文件夹:AdoTemp(取名自定)二、在工具的Template Explorer中点击Create 阅读全文
posted @  2011-11-01 14:14 porschev 阅读(959) |  评论 (4)  编辑
 
摘要: 做个生成静态页示例:采用替换模版页的形式生成静态页第一步:新建项目,创建一个简单模版页:TemplatePage.htm<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Porschev 阅读全文
posted @  2011-11-01 11:10 porschev 阅读(272) |  评论 (4)  编辑
 
摘要: C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\...dll 拒绝访问1.在找到C:\Windows\Temp 文件夹2.给Temp文件夹添加NETWORK SERVICE用户,给读写权限具体步骤文件夹右键属性--->安全--->编辑--->添加--->高级--->立即查找--->在搜索结果中选中NETWORK SERVICE--->确定--->确定--->勾上读取和修改(也可以给个完全控制权限)--->确定 阅读全文
posted @  2011-11-01 11:08 porschev 阅读(100) |  评论 (0)  编辑
 
摘要: 今天看人提问才发现TextBox放在updatepanel中,当点击Button时,在Button的click事件中得到焦点。。。本来应该用TextBox1.Focus();就可以得到焦点果然得到焦点完全没有问题,但是新问题在文本框中没法切换输入法至中文输入解决方法:在TextBox1.Focus();得到焦点之后,后面再加入这段脚本注册:ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "", "setTimeout(/"document.getElementBy 阅读全文
posted @  2011-11-01 11:08 porschev 阅读(15) |  评论 (0)  编辑
 
摘要: 今天重装了一下家里电脑的数据库在附加己有数据库时,出现5123错误错误载图解决方法:1.直接把己有数据库复制到sql安装目录下C:/Program Files/Microsoft SQL Server/MSSQL10.MSSQLSERVER/MSSQL/DATA 这样就可以附加,不知道是不是在装数据库时漏选了什么操作,以前没遇到过。2.在己有数据库mdf和ldf文件上,右键---->属性---->添加---->高级---->立即查找---->Authenticated Users---->确定 ------>完全控制勾上---->确定以上两种方法 阅读全文
posted @  2011-11-01 11:07 porschev 阅读(64) |  评论 (3)  编辑
 
摘要: 实现方式:通过正则抓取IP显示网站中的数据。。。。 友情提示:这种方式效率不算高,如果用在WEB中,如果用得少可以用这种方式,如果常用,还是建议用IP库 #region##得到真实IP以及所在地详细信息 ///<summary> /// 得到真实IP以及所在地详细信息(Porschev) ///</summary> ///<returns></returns> public string GetIpDetails() { string url = "http://www.ip13... 阅读全文
posted @  2011-11-01 09:45 porschev 阅读(1004) |  评论 (2)  编辑
 
摘要: 插件参数:rater第一个参数是AJAX提交的URLrater第二个参数maxvalue:最大星数curvalue:默认选择多少颗星title:鼠标放在星上的提示enable:可设置true or false,控件是否可用rater的第三个参数回调函数aspx页代码:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"%><!DOCTYPE html PUBLIC & 阅读全文
posted @  2011-11-01 09:27 porschev 阅读(281) |  评论 (0)  编辑
摘要: 采用Jquery无刷新分页插件jquery.pagination.js实现无刷新分页效果友情提示:本示例Handler中采用StringBuilder的append方法追加HTML,小数据量可以,但是大数据或是布局常变,建议返回JSON格式的数据,性能和灵活性更好!1.插件参数列表2.页面内容:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"%><!DOCTYPE 阅读全文
posted @  2011-10-31 09:23 porschev 阅读(2905) |  评论 (43)  编辑
 
摘要: 自学WP7做的第一个程序:时钟做的很山寨,没用素材用TextBlock做的表盘和指针,放在一个Canvas上RotateTransform类来控制偏移角度MainPage.xaml<phone:PhoneApplicationPage x:Class="Clock.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xml 阅读全文
posted @  2011-10-30 11:10 porschev 阅读(1100) |  评论 (14)  编辑
 
摘要: 根据去哪儿(http://www.qunar.com/)输入框点击按钮而写实现功能效果:1、点击按钮,相应层显示,点击层以外的部分层隐藏;2、重复点击按钮时,按钮附属层显示时变隐藏,反之亦然;3、如果一个页面上有两个以上这种效果,层会有互斥效果;<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="Default5" %><!DOCTYPE html PUBLIC "-//W 阅读全文
posted @  2011-10-29 17:35 porschev 阅读(708) |  评论 (0)  编辑
 
摘要: 前台用AJAX直接调用后台方法,老有人发帖提问,没事做个示例CasMenu.aspx页面:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CasMenu.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/ 阅读全文
posted @  2011-10-29 11:51 porschev 阅读(1207) |  评论 (11)  编辑
 
摘要: ///<summary>/// 获取一个图片按等比例缩小后的大小。///</summary>///<param name="maxWidth">需要缩小到的宽度</param>///<param name="maxHeight">需要缩小到的高度</param>///<param name="imageOriginalWidth">图片的原始宽度</param>///<param name="imageOriginalHei 阅读全文
posted @  2011-10-29 11:42 porschev 阅读(762) |  评论 (0)  编辑

你可能感兴趣的:(urlrewrite)