[转载]ASP.NET伪静态页面的实现和伪静态在IIS7.0中的配置
ASP.NET伪静态 UrlRewrite(Url重写) 实现和配置 最近在写一个CMS的内容管理系统,需要用到一个伪静态方面的方法,在网上找了一下这方面的资料,现将这方面的资源记录一下。 本机环境: Window server 2008 R2 Enterprise 操作系统+SQL Server 2008 R2 Enterprise企业版数据+Visual Studio 2010 SP1 普及一下伪静态方面的知识, 1、伪静态简单一点儿来说,其实就是重写了URL,最大的好处便于搜索引擎抓取,因为搜索引擎喜欢静态网站,类似于.html或.htm后缀的网页。 2、使用静态文件会占用大量的硬盘空间,并且会加重磁盘IO的负核,使用伪静态,一来可以节省硬盘空间,减少一部分的磁盘IO的负核,二来,在网站的进化过程中可能会有一些业务上的调整,也便于以后网站升级进化。 3、伪静态缺点,则会加重CPU的负担。 好了,我只了解这一部分。为了SEO还是使用部分伪静态吧。 使用的两个DLL URLRewriter.dll
ActionlessForm.dll 下载地址:http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi 该安装包中包含了该DLL的源代码,喜欢研究的朋友可以直接研究代码。 同时,该安装包还包含一个示例,木有研究,只是打开看了看web.config配置信息,现将配置伪静态部分贴到下面。 使用以下配置,我发现当页面中一个APS.NET的button按钮提交不了。介个目前还木有研究,需要继续深入的研究。
<?xml version="1.0" encoding="utf-8"?> <!--
有关如何配置 ASP.NET 应用程序的详细消息,请访问
http://go.microsoft.com/fwlink/?LinkId=169433
--> <configuration>
<configSections>
<section name="RewriterConfig" requirePermission="false" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<RewriterConfig>
<Rules>
<RewriterRule>
<!--一个参数-->
<LookFor>~/Articles/articles_(.[\d]*)\.html</LookFor>
<SendTo>~/Articles/News.aspx?id=$1</SendTo>
</RewriterRule>
<RewriterRule>
<!--传两个参数的-->
<LookFor>~/Articles/articles_(.[\d]*)0(.[\w]*).html</LookFor>
<!--(.[\d]*)(.[\w]*).html 或者 ss_,(.[0-9]*),(.[0-9]*)\.html-->
<SendTo><![CDATA[~/Articles/News.aspx?id=$1&sid=$2]]></SendTo>
</RewriterRule>
<RewriterRule>
<!--三个参数-->
<LookFor>~/Articles/articles_(.[\d]*)0(.[\w]*)0(.[\w]*).html</LookFor>
<SendTo><![CDATA[~/Articles/News.aspx?id=$1&sid=$2&n_id=$3]]></SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
<appSettings>
<add key="ApplicationName" value="测试程序"></add>
<!--是否起用错误日志-->
<add key="ErrorLog" value="0"/>
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpHandlers>
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<remove name="ScriptModule"/>
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
</modules>
</system.webServer>
</configuration>
<system.webServer>
这一部分的配置,其实是针对IIS 7.5配置的,在网上找的一部分代码是这样配置的,但是偶没有配置出来。直接使用以上代码,就不需要如下配置了。
--------------- --------------- --------------- --------------- --------------- --------------- ---------------
配置IIS7.5你的网站-->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
--------------- --------------- --------------- --------------- --------------- --------------- --------------- --------------- ---------------
碰到的错误信息提示:
.NET的应用程序池为经典时为报以下异常。
HTTP 错误 500.21 - Internal Server Error
处理程序“SimpleHandlerFactory-ISAPI-4.0_32bit”在其模块列表中有一个错误模块“IsapiModule”
ASP.NET伪静态页面的实现和伪静态在IIS7.0中的配置
[转载]ASP.NET伪静态页面的实现和伪静态在IIS7.0中的配置的更多相关文章
- 客户端的javascript改变了asp.net webform页面控件的值,后台代码中如何获取修改后的值。
客户端的javascript改变了asp.net webform页面控件的值,后台代码中如何获取修改后的值. 无论是什么的html控件,只要加上了runat="server" ...
- Windows-Server-2008、IIS7.0环境下配置伪静态化
在Windows-Server-2008.IIS7.0环境下配置伪静态化 首先,是IIS7.0的配置,由于Windows Server 2008操作系统默认的IIS版本为 ...
- asp.net core 2.0中的配置(1)---Configuration
配置就是一个装配数据字典的过程,一个字典也就是一个键值对,所以从配置就是键值对. 在asp.net core中关于配置是由四个基本的类型来支撑的,是①IConfigurationSource②ICon ...
- ASP.Net上传大文件解决方案之IIS7.0下的配置
开源的Brettle.Web.NeatUpload.在公司IIS6.0使用正常,但是在Windows 2008 server IIS7上使用不正常.在网上看到一个解决办法但是没有效果 IIS 7 默认 ...
- ASP.NET上传大文件报错,IIS7.0
打开你系统盘(我是C盘),找到C:\Windows\System32\inetsrv\config\schema目录,该目录下有一个IIS_schema.xml,右击打开文件,Ctrl+F,然后输入& ...
- asp.net服务器页面处理过程
一.静态页面.动态页面区别 静态页面是服务端直接从硬盘里面读取然后发回去,动态页面就要创建这个页面类的对象,调用对象的方法,方法里面什么就发回什么.浏览器请求asp.net页面实际是请求asp.net ...
- IIS7.0/7.5 MVC3 实现伪静态
routes.MapRoute( "Default", "{controller}/{action}.html/{id}&qu ...
- [Asp.net MVC]页面伪静态实现
摘要 从页面Url及页面名称上看,你会发现静态页面和伪静态是一样的.伪静态的页面后缀可能是html,htm,cshtml等,只是改变了url的表现形式,实际上还是动态的页面.在SEO方面,伪静态和静态 ...
- [转载]ASP.NET页面之间传递值的几种方式
页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...
随机推荐
- 第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理
第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理 将一个app下的models数据库表注册到xadmin后台管理 重点 ...
- HTML5游戏中动画帧的概念理解
最近在弄一个HTML5游戏,在学习过程中,总结出这个帧结构. HTML5游戏最重要也就是对帧的理解. 容器:Canvas 一个画布 sprite:一个canvas上有多个动画,每个动画对象就是一个An ...
- ajax 把返回结果作为参数传递
这个涉及到js的异步执行了,程序本身是同步执行的,到了getJSON这里的时候,这个函数是异步的,而 load_val这个函数是同步的,你需要这样来异步返回这个值 function load_val( ...
- Linux下yum命令详解
yum是什么yum = Yellow dog Updater, Modified主要功能是更方便的添加/删除/更新RPM包.它能自动解决包的倚赖性问题.它能便于管理大量系统的更新问题yum特点 可以同 ...
- VMware克隆虚拟机后无法启动网卡
最简单的办法: 修改这个文件:/etc/udev/rules.d/70_persistent-net.rules 把eth1修改为eth0,记下里面的mac地址 修改/etc/sysconfig/ne ...
- 超酷 CSS3/HTML5 3D 飘带菜单实现教程
今天我们来介绍一款很有创意的CSS3/HTML5菜单,首先菜单是飘带形状的,看起来很优雅,这种菜单在个人博客中用的比较多,不仅干净利落,而且很具有个性化.另外,这款菜单在鼠标滑过菜单项时,将会出现3D ...
- 二维数组按某个键值排序 FOR PHP
$arr=[ array( 'name'=>'小坏龙', 'age'=>28 ), array( 'name'=>'小坏龙2', 'age'=>14 ), array( 'na ...
- 几个免费IP地址查询API接口
转:http://blog.csdn.net/ishxiao/article/details/52670242 -------------------------------------------- ...
- Hibernate的七种映射关系之基本映射
说到关系,在这个世界无处不在,我们必须以某个关系的节点存在在这个世界网中.比如父子关系,师生关系,上下属关系甚至是危险关系.数据也是一样的,它的存在必为某其他节点做准备. Hibernate有七种映射 ...
- Oracle:在 debian9 上完美安装 oracle 10.2.0.5 x64
多余废话不说. 多动脑子,思路不要僵化. 关键点: --------------------------------------------------- 安装i386的支持库:libc6-dev:3 ...