Urlrewrite 配置信息写在另外的文件

由于伪静态的配置 太多,如果放在web.cofig里面可阅读性不强,而且频繁修改webconfig容易出错。

1.修改RewriterConfigSerializerSectionHandler类

using System;
using System.Configuration;
using System.Xml;
using System.Xml.Serialization;
using System.Xml.XPath;

namespace Utility.URLRewriter
{
    /// <summary>
    /// Deserializes the markup in Web.config into an instance of the <see cref="RewriterConfiguration"/> class.
    /// </summary>
    public class RewriterConfigSerializerSectionHandler : IConfigurationSectionHandler
    {
        /// <summary>
        /// Creates an instance of the <see cref="RewriterConfiguration"/> class.
        /// </summary>
        /// <remarks>Uses XML Serialization to deserialize the XML in the Web.config file into an
        /// <see cref="RewriterConfiguration"/> instance.</remarks>
        /// <returns>An instance of the <see cref="RewriterConfiguration"/> class.</returns>
        public object Create(object parent, object configContext, System.Xml.XmlNode section)
        {
            string sourcePath = section.Attributes["ConfigSource"].Value;

            // Create an instance of XmlSerializer based on the RewriterConfiguration type...
            XmlSerializer ser = new XmlSerializer(typeof(RewriterConfiguration));

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(System.Web.HttpContext.Current.Server.MapPath(sourcePath));
            // Return the Deserialized object from the Web.config XML
            return ser.Deserialize(new XmlNodeReader(xmlDoc));

            //// Create an instance of XmlSerializer based on the RewriterConfiguration type...
            //XmlSerializer ser = new XmlSerializer(typeof(RewriterConfiguration));

            //// Return the Deserialized object from the Web.config XML
            //return ser.Deserialize(new XmlNodeReader(section));
        }

    }
}

2.修改web.config

<configSections>
    <section name="RewriterConfig" type="URLRewriter.Config.CustomRewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<RewriterConfig ConfigSource="/config/URLRewriter.config"></RewriterConfig>

3.添加urlRewriter.config配置文件

<?xml version="1.0"?>
  <RewriterConfig>
    <Rules>
      <!-- Rules for Blog Content Displayer -->
      <RewriterRule>
        <LookFor>~/1.aspx</LookFor>
        <SendTo>~/Default.aspx</SendTo>
      </RewriterRule>
      <RewriterRule>
        <LookFor>~/(\d{4})/(\d{2})/(\d{2})\.aspx</LookFor>
        <SendTo>~/ShowBlogContent.aspx?year=$1&month=$2&day=$3</SendTo>
      </RewriterRule>
    </Rules>
  </RewriterConfig>

完成。

时间: 2024-10-10 10:46:08

Urlrewrite 配置信息写在另外的文件的相关文章

C# iis 错误配置信息( CS0016: 未能写入输出文件 )

IIS发布时,编译器错误消息: CS0016: 未能写入输出文件 "c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\2e9aca09\f067b5c4\App_Web_login.aspx.cdcab7d2.5bhornew.dll" --"拒绝访问. " 这是因为在发布IIS服务时,没有权限操作TEMP文件夹所造成的.

springboot 入门三- 读取配置信息二(读取属性文件方式)

在上篇文章中简单介绍自带读取方式.springboot提供多种方式来读取 一.@ConfigurationProperties(value="my") 支持更灵活的绑定及元数据的支持,但不支持spEL 定义appConfig接收(需要set get方法) @Component@ConfigurationProperties(value = "my")public class AppConfig {    private String name;    private

java将配置信息写在数据库(利用反射)

Demo出处: 1. package com.fpx.pcs.prealert.process.xml.service.impl; public class CainiaoPushMessageServiceImpl implements ICainiaoPushMessageService { @Resource private CommonImpl commonImpl; @Override public ResultMessage execute(String xml, String ms

使用Spring读取xml文件中的配置信息

一般写程序时我们都会将一些配置信息写到配置文件中,以便在不修改源码的情况下对程序的某些点进行更改.这里介绍一种Spring读取xml配置文件的方式,其基本思路如下:定义一个java类,其中定义一些静态变量对应我们的配置信息,然后采用注入的方式将变量值初始化为配置值.示例代码如下: 新建一个java类: package java; public class Config { //要配置的值 public static int value = 0; //这里不能写成静态的 public void s

Nuget~让包包带上自己的配置信息

我们知道一般开发组件之后,组件都有相关配置项,最常见的作法就是把它写到web.config里,而如果你将这个文件直接放到nuget里打包,在进行安装包包时,会提示你这个文件已经存在,不能去覆盖原来的config文件,这时,我们只能将配置信息写到别一个文本文件里,而使用者在安装包包后,还要手动将信息拷贝到自己的config文件,确实挺无奈的,没人愿意干这种重复的活! 解决这种现状 使用web.config.transform文件,将自己个性的信息写在里面,它将自动合并到现有config文件中 例如

CentOS6.5系统下Hadoop2.6.0完全分布式环境安装与配置信息介绍

文件配置: (注:修改配置文件需要使用root用户,否则修改失败) vim /etc/sysconfig/network 修改主机名为:HOSTNAME=Master vim /etc/sysconfig/network-scripts/ifcfg-eth0 查看IP地址.网关.DNS服务器是否正确 vim /etc/sysconfig/network-scripts/ifcgf-eth0 如果不正确,进行修改 ifconfig 修改后的结果 vim /etc/hosts 配置hosts文件,主

读取配置信息

ASP.NET Core的配置(1):读取配置信息 提到“配置”二字,我想绝大部分.NET开发人员脑海中会立马浮现出两个特殊文件的身影,那就是我们再熟悉不过的app.config和web.config,多年以来我们已经习惯了将结构化的配置信息定义在这两个文件之中.到了.NET Core的时候,很多我们习以为常的东西都发生了改变,其中也包括定义配置的方式.总的来说,新的配置系统显得更加轻量级,并且具有更好的扩展性,其最大的特点就是支持多样化的数据源.我们可以采用内存的变量作为配置的数据源,也可以直

Tomcat下conf下server.xml的文件配置信息

Tomcat下conf下server.xml的文件配置信息,基本上不用做任何修改就可以使用,修改的地方就是host区域的一些配置,此文件设置端口为80. 注意:Tomcat配置文件中(即server.xml文件)不能出现中文,否则服务是无法启动的. [xhtml] view plaincopy <!-- Server中的port监听关闭tomcat的请求,shutdown指定向端口发送的命令串--> <Server port="8005" shutdown="

类库从自带的配置文件中获取信息(DLL文件 获取 DLL文件自带的配置信息) z

http://blog.csdn.net/shuaishifu/article/details/19602059 类库调用自身所带的配置文件中的配置信息,而不是读取应用程序所带的配置信息.代码如下: private Configuration GetConfig() { //获取调用当前正在执行的方法的方法的 Assembly Assembly assembly = Assembly.GetCallingAssembly(); string path = string.Format("{0}.c