`
webcode
  • 浏览: 5948955 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

配置文件,让程序更加灵活

 
阅读更多

配置文件之所以灵活,是因为它使用纯文本XML编写,如果需求发生改变,可以方便的修改应用程序的配置信息,且无需重新编译。

Config分为Machine.Config和***.Config,见名知意,Machine.Config是存储一台机器上的所有应用程序的配置信息,而***.Config是储存 *** 应用程序的配置信息。

今天我给大家介绍的是Web.Config

Web.config 文件是一个XML文本文件,它用来存储ASP.NET Web应用程序的配置信息,它可以出现在应用程序的每一个目录中。当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。


这里有典型的代码和详细的说明:

<?xml version="1.0"?>
<!-- 
    注意: 除了手动编辑此文件以外,您还可以使用 
    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
     “网站”->“Asp.Net 配置”选项。
    设置和注释的完整列表在 machine.config.comments 中,该文件通常位于 
    \Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
  <!--应用程序设置-->
  <appSettings>
    <add key="con" value="server=.;database=northwind;Integrated Security=True"/>
    <add key="select" value="select * from employees"/>
  </appSettings>
  <!--页配置设置-->
  <system.web>
    <!--buffer为false 服务端以16k为单位逐渐向客户端传送,页面会一段一段的出来;
            为true,在服务端会形成整个页面再发送过来。-->
    <pages buffer="true" enableViewState="true " controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
    <!-- 
              在制作程序时,这个应该启用调试功能。
              如果网站制作完成了,发布出去了。这个应该设置为false ,不需要调试。
              如果打开调试后,影响速度
          -->
    <compilation debug="true" targetFramework="4.0"/>
    <!--
              身份验证和授权 Forms类型
              name:用于身份验证的Cookie名称
              loginUrl:登录页。如果没有身份验证Cookie,客户端将会重定向该页。
              protection:值为all,应用程序同时使用数据验证和加密来保护Cookie(存储加密,
                  传递过程中是否被篡改)
                                 值为none,加密和验证都禁用。
               timeout:这段时间后,身份验证的Cookie将过期,单位为分钟,默认为30
               path:由应用程序发布的Cookie路径,默认值是反斜杠 /
          -->
    <authentication mode="Forms">
      <!--身份验证-->
      <forms name="authCre" loginUrl="login.aspx" protection="All">
        <!--在文件中指定用户名和密码时,在前台使用 
          System.Web.Security.FormsAuthentication.Authenticate(txtUserName.Text, txtPwd.Text)
          判断是否与配置文件中的信息一致。
          -->
        <credentials passwordFormat="Clear">
          <!--credentials [kri'denʃəlz]证书-->
          <user name="aaa" password="aaa"/>
          <user name="bbb" password="bbb"/>
        </credentials>
      </forms>
    </authentication>
    <authorization>
      <!--授权-->
      <deny users="aaa,?"/>
      <!--?表示任何一个用户,即匿名-->
    </authorization>
    <!--
              如果在执行请求的过程中出现未处理的错误,可以显示的 html 错误页,
              以代替错误堆栈跟踪。
              mode:On 表示在本地和远程用户都会看到自定义错误信息。
                          Off 禁用自定义错误信息,本地和远程用户都会看到详细的错误信息。
                          RemoteOnly 表示本地用户将看到详细错误信息,而远程用户将会看到自定义错误信息。
      -->
    <customErrors mode="RemoteOnly" defaultRedirect="error.aspx">
      <error statusCode="403" redirect="NoAccess.htm"/>
      <error statusCode="404" redirect="FileNotFound.htm"/>
    </customErrors>
  </system.web>
</configuration>

这些是基本的、常用的配置信息,但是我还想补充几点:

1、<httpRuntime>

作用:配置ASP.NET HTTP 运行库设置。

示例:控制用户上传文件最大为4M,最长时间为60秒,最多请求数为100

<httpRuntime maxRequestLength="4096" executionTimeout="60" appRequestQueueLimit="100"/>


2、<sessionState>
作用:为当前应用程序配置会话状态设置(如设置是否启用会话状态,会话状态保存位置)。
示例
<sessionState mode="InProc" cookieless="true" timeout="20"/>
</sessionState>
注:
mode="InProc"表示:在本地储存会话状态(你也可以选择储存在远程服务器或SQL服务器中或不启用会话状态)
cookieless="true"表示:如果用户浏览器不支持Cookie时启用会话状态(默认为False)
timeout="20"表示:会话可以处于空闲状态的分钟数


3、<Location>
作用:设置不同子目录下应用程序的数据库链接
如果在一个虚拟目录下有多个子目录,每一个子目录下下的web应用程序都需要连接不同的数据库,这如何做呢??
一种方法是在每一个子目录下分别建立一个web.config,用它来设置这个目录下的数据库连接。但这种方法的问题是需要维护每一个了目录下的web.config。

方法二,是只在虚拟目录下建立一个web.config,在它里面设置每一个子目录下的应用程序的数据库连接。说到这里,你会想到上面的第二种方法,使用多个不同的key值来设置,这的确是一个办法。

当然是第二种方法好了,在虚拟目录下布置web.config,在其中使用location标记,使用同一个key值来连接数据库,这样做的好处很明显,因为用同一个key值,将导致在所有目录下的应用程序中,都可以使用共同的语句来连接数据库,这在程序以后发生位置迁移时,并不用修改程序中连接数据库的语句。
具体设置如下:

        <location path="news">
	 <appsettings>
	  <add key="connstring" value="uid=flyangel;password=3.1415926;database=news;server=(local)" />
	 </appsettings>
	</location>
	<location path="bbs">
	 <appsettings>
	  <add key="connstring" value="uid=flyangel;password=3.1415926;database=bbs;server=(local)" />
	 </appsettings>
	</location>
	<location path="soft">
	 <appsettings>
	  <add key="connstring" value="uid=flyangel;password=3.1415926;database=soft;server=(local)" />
	 </appsettings>
	</location>

注:上例中news、bbs、soft分别是虚拟目录下的子目录。
程序中使用连接时,采用下面的方法:
public function getconnectionstring()
configurationsettings.appsettings().item("connstring")
end sub


在思想层次看配置文件,之所以能够使程序变的灵活,能够博得人们的喜爱,是因为他能更好的应对变化。



















分享到:
评论

相关推荐

    C# 保存和读取XML配置文件

    应用程序中,经常需要保存一些用户的设置...这个代码就是用C#写的保存和读取程序运行目录下的XML配置文件的程序,配置文件也会自动生成,很灵活的。 共享给大家,大家可以很方便的调用,然后保存和读取自己的程序设置。

    C# 通过配置文件获取数据库连接

    程序编译后自动会产生相应的配置文件,是跟项目的名称一样的配置文件。 读取配置文件及保存配置的具体代码参考如下,希望能给你节省一些时间,直接复制粘贴这个代码就可以用了: //------------------------------...

    Java课程实验 Spring Boo 配置文件以及 Profile 多环境配置

    这些配置文件可以根据不同的环境进行分离和管理,Spring Boot提供了多种灵活的方式来实现多环境配置。 1. 配置文件的命名 默认配置文件:application.properties(或application.yml) 环境特定配置文件:...

    Java 反射读取配置文件及反射类

    这个工程是使用 java 来使用反射的原理读取 *....利用此方法可以在没有使用框架的情况下可以让你的程序更加灵活易于修改。如:可以将一些数据库配置信息,重要信息写入到资源文件中,在使用反射来读取这些信息。

    数据库配置文件模版,jdbc

    数据库配置文件是用于配置数据库连接和其他相关数据库设置的文件。它通常是一个文本文件,其中包含了数据库...通过配置数据库配置文件,应用程序可以轻松管理数据库连接和设置,使得数据库的访问和操作更加方便和灵活。

    发明名称 --- VxWorks的参数化配置方法_参数配置_VxWorks的参数化配置方法_

    通过根据计算机ID和预设参数配置文件为VxWorks进行参数配置,实现了参数化配置整个分布式系统,即相同计算机硬件中的VxWorks操作系统,并且技术状态统一,实现了先配置VxWorks操作系统再加载应用程序,不必在应用...

    影视小程序源码 付费短剧小程序源码 支持会员模式 多平台支付方式

    此外,它还有成熟的代理机制,让你在营销推广上更加轻松。 对于搭建方面,只需上传源码到服务器,导入数据库文件并修改配置文件即可。此外,该源码还提供了详细的搭建教程,让你可以更快更好地开始使用。 搭建教程...

    Query配置文件方式.rar

    主要包含query的程序,有src,有webroot,大家可以参考学习一下,这个demo对我帮助很大,让我在实际项目中能灵活运用query

    qt托盘+保活程序源码,内含打包好的可执行程序

    qt托盘+保活程序源码 qt的托盘程序,有右键菜单,可以隐藏至右下角,且启动时有右下角Windows提示框 通过配置文件可以灵活配置需要保活的程序 程序内部封装了读取配置文件的类,用来直接读取配置文件中的数据

    全开源的付费小剧场短剧影视小程序源码,支持支付收益+影视片素材+搭建教程

    全开源的付费小剧场短剧影视小程序源码,支持支付收益+影视片素材。...对于搭建方面,只需上传源码到服务器,导入数据库文件并修改配置文件即可。此外,该源码还提供了详细的搭建教程,让你可以更快更好地开始使用。

    通过xml可以配置界面的应用程序

    通过加载xml文件灵活地配置应用程序界面,不需要使用DirectUI技术

    uniapp微信小程序电商源码前后端均未编译

    配置文件可分离,方便管理 重写的自动验证和完成 简化扩展机制,提升开发速度 API支持完善,方便二次开发 内置WeChat微信开发框架,微信接入更加快捷,简单 使用ORM自动创建表结构,提升开发速度 支持数据库...

    linux下的dnw(经过改写带配置文件,操作灵活)

    该dnw是在前人的基础上行修改的,将原来只能下载0x30000000地址,现在可任意地址下载,需要配置etc/dnw.conf目录 进入secbulk目录编译驱动 ...应用程序第一次运行后会在etc目录生成dnw.conf和dnw.sh两个文件

    test-user-profiles:使用 Backbone、JQuery、HTML5、CSS3 测试单页用户配置文件应用程序

    测试用户配置文件使用 Backbone、JQuery、HTML5、CSS3 测试单页用户配置文件应用程序使用外部 API。 测试使用 Backbone 以用户身份登录并注册新用户。 React灵敏。 TODO:重写 API。

    csgo雷蛇压枪宏 0.8灵敏度

    csgo雷蛇压枪宏 0.8灵敏度 配置简单

    Python实现的将MySQL中的数据导出至EXCEL文件的工具源代码

    4.增加了excel.json配置文件,使导出EXCEL的相关配置可在JSON中"灵活"配置 5.增加了异常处理,异常退出提示相关错误信息 6.增加了程序初始化功能,运行时先根据情况生成各个配置文件 7.增加了使用说明

    全开源的付费小剧场短剧影视小程序源码,支持支付收益【附安装教程】

    此外,它还有成熟的代理机制,让你在营销推广上更加轻松。 对于搭建方面,只需上传源码到服务器,导入数据库文件并修改配置文件即可。此外,该源码还提供了详细的搭建教程,让你可以更快更好地开始使用。 搭建教程 ...

    微信小程序-微信小程序 webpack 插件

    微信小程序开发需要有多个入口文件(如 app.js, app.json, pages/index/index.js 等等),使用这个插件只需要引入 app.js 即可,其余文件将会被自动引入 若多个入口文件(如 pages/index/index.js 和 pages/logs/...

    2024小剧场短剧影视小程序源码

    2023短剧系统|追剧影视小程序|付费短视频小剧场|带支付...4,付费观看(强大的支付系统,支持多平台支付方式,支付灵活可配置,多重加密确保交易安全) 6,成熟代理机制(主流代理机制让流量不在是问题,配合多营销方

    支持支付收益 全开源的付费小剧场短剧影视小程序源码

    此外,它还有成熟的代理机制,让你在营销推广上更加轻松。 对于搭建方面,只需上传源码到服务器,导入数据库文件并修改配置文件即可。此外,该源码还提供了详细的搭建教程,让你可以更快更好地开始使用。 搭建教程 ...

Global site tag (gtag.js) - Google Analytics