• [转载]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.NETFrameworkv2.0.50727aspnet_isapi.dll 名称:任意,比如Hml )
    添加通配符脚本映射(路径:* 可执行文件:C:WindowsMicrosoft.NETFrameworkv2.0.50727aspnet_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中的配置

     
  • 相关阅读:
    照到抄的。C# 多线程自己写的包装器
    转的一份代码应该是 max的吧..
    WPF 里面的 Run .感觉这名称真没取好,application 里面有个 run, textblock 里面也有个.
    Marshal C#
    VS2010推荐实用插件
    Aga.Controls.Tree.TreeViewAdv使用教程之概要介绍
    文档批量下载器
    有趣,http请求接收网站
    Dictionary, KeayValuePair,HashMap,HashTable,待学补充
    kafka和zookeeper的安装
  • 原文地址:https://www.cnblogs.com/xyzhuzhou/p/3904103.html
Copyright © 2020-2023  润新知