.net 读取独立的配置文件
来源:互联网 发布:windows telnet服务器 编辑:程序博客网 时间:2024/06/04 18:35
做底层项目经常会需要保存配置信息.为了方便运维,还是把配置文件单独分离出来配置比较好 ,一个项目一个单独的独立配置文件,简单,易维护,易移植.
全部都放在一个Web.config中.拥挤不堪,找起来麻烦,看着都烦.写说明文档也麻烦的要死..还是独立配置比较清爽..
下面是读取单独配置文件的类
public class XMLConfigRead { public string ConfigPath; public XMLConfigRead(string fileName) { //HttpContext.Current.Request.PhysicalApplicationPath 取得config文件路径 string dllPath = string.Empty; try { //dllPath = HttpContext.Current.Request.PhysicalApplicationPath; dllPath = HttpRuntime.AppDomainAppPath;//Web环境下 这个最稳定.应该用这个. } catch (Exception ex) { dllPath = Path.GetDirectoryName(new Uri(this.GetType().Assembly.CodeBase).AbsolutePath); //本地应用程序的情况下.应该用这个 } if (File.Exists(fileName)) { ConfigPath = fileName; } else if (File.Exists(Path.Combine(dllPath, fileName))) { ConfigPath = Path.Combine(dllPath, fileName); } else { throw new Exception("配置文件不存在,请检查"); } } public string ReadNodeValue (string nodename) { XmlDocument doc = new XmlDocument(); doc.Load(ConfigPath); XmlNode node = doc.SelectSingleNode(nodename); if (node.Value == null) { if (node.Attributes["value"] == null) { return ""; }else{ return node.Attributes["value"].Value; } }else{ return node.Value; } } }
把 WebSiteErrorLog.config 配置文件,直接放在网站根目录下,
读取方法是
XMLConfigRead ConfigRead = new XMLConfigRead(“WebSiteErrorLog.config”);
当然也可以把配置文件都放到config下面 读取方法得改成
XMLConfigRead ConfigRead = new XMLConfigRead(“config/WebSiteErrorLog.config”);
<?xml version="1.0" encoding="utf-8" ?><ErrorLog> <DB_DataSource value="10.90.0.0*"/> <DB_InitialCatalog value="Log"/> <DB_IntegratedSecurity value="false"/> <DB_MaxPoolSize value="10000"/> <DB_ConnectTimeout value="1"/> <DB_UserID value="sa"/> <DB_Password value="999"/> <WebSiteId value="123456789"/> </ErrorLog>
//使用方法, 读取WebSiteErrorLog.config 配置文件 中的配置
见下面代码
public class StoreErrorToDB { XMLConfigRead ConfigRead = new XMLConfigRead("WebSiteErrorLog.config"); static SqlConnectionStringBuilder connStr ; static string WebSiteId; public StoreErrorToDB() { if (connStr == null) { connStr = new SqlConnectionStringBuilder(); connStr.DataSource = ConfigRead.ReadNodeValue("ErrorLog/DB_DataSource"); connStr.InitialCatalog = ConfigRead.ReadNodeValue("ErrorLog/DB_InitialCatalog"); connStr.IntegratedSecurity = Convert.ToBoolean(ConfigRead.ReadNodeValue("ErrorLog/DB_IntegratedSecurity")); connStr.UserID = ConfigRead.ReadNodeValue("ErrorLog/DB_UserID"); connStr.Password = ConfigRead.ReadNodeValue("ErrorLog/DB_Password"); //设置最大连接池 connStr.MaxPoolSize = Convert.ToInt32(ConfigRead.ReadNodeValue("ErrorLog/DB_MaxPoolSize")); //设置超时时间为1秒 connStr.ConnectTimeout = Convert.ToInt32(ConfigRead.ReadNodeValue("ErrorLog/DB_ConnectTimeout")); WebSiteId = ConfigRead.ReadNodeValue("ErrorLog/WebSiteId"); } } public void SaveError(Error error) { SqlConnection conn = new SqlConnection(connStr.ConnectionString); conn.Open(); string sql = @" INSERT INTO Error (Id,WebSiteId,RequestQueryString,RequestUserAgent,RequestUserHostAddress,RequestUrl,RequestUrlReferrer,RequestRequestType,RequestHttpMethod,RequestContentEncoding,InnerException_Message,InnerException_Source,InnerException_StackTrace,InnerException_TargetSite,Message,Source,StackTrace,TargetSite,RequestCookie,RequestHeaders,RequestForms) VALUES (@Id,@WebSiteId,@RequestQueryString,@RequestUserAgent,@RequestUserHostAddress,@RequestUrl,@RequestUrlReferrer,@RequestRequestType,@RequestHttpMethod,@RequestContentEncoding,@InnerException_Message,@InnerException_Source,@InnerException_StackTrace,@InnerException_TargetSite,@Message,@Source,@StackTrace,@TargetSite,@RequestCookie,@RequestHeaders,@RequestForms)"; SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = sql; cmd.Parameters.Add("@RequestQueryString",SqlDbType.VarChar,4000); cmd.Parameters.Add("@RequestUserAgent",SqlDbType.VarChar,100); cmd.Parameters.Add("@RequestUserHostAddress",SqlDbType.VarChar,500); cmd.Parameters.Add("@RequestUrl",SqlDbType.VarChar,500); cmd.Parameters.Add("@RequestUrlReferrer",SqlDbType.VarChar,500); cmd.Parameters.Add("@RequestRequestType",SqlDbType.VarChar,10); cmd.Parameters.Add("@RequestHttpMethod",SqlDbType.VarChar,10); cmd.Parameters.Add("@RequestContentEncoding",SqlDbType.VarChar,10); cmd.Parameters.Add("@InnerException_Message",SqlDbType.VarChar,500); cmd.Parameters.Add("@InnerException_Source",SqlDbType.VarChar,500); cmd.Parameters.Add("@InnerException_StackTrace",SqlDbType.VarChar,600); cmd.Parameters.Add("@InnerException_TargetSite",SqlDbType.VarChar,600); cmd.Parameters.Add("@Message",SqlDbType.VarChar,500); cmd.Parameters.Add("@Source",SqlDbType.VarChar,500); cmd.Parameters.Add("@StackTrace",SqlDbType.VarChar,600); cmd.Parameters.Add("@TargetSite", SqlDbType.VarChar, 600); cmd.Parameters.Add("@WebSiteId", SqlDbType.VarChar, 50); cmd.Parameters.Add("@Id", SqlDbType.UniqueIdentifier, 60); cmd.Parameters.Add("@RequestCookie", SqlDbType.VarChar, 4000); cmd.Parameters.Add("@RequestHeaders", SqlDbType.VarChar, 4000); cmd.Parameters.Add("@RequestForms", SqlDbType.VarChar, 4000); cmd.Parameters[0].Value = error.RequestQueryString; cmd.Parameters[1].Value = error.RequestUserAgent; cmd.Parameters[2].Value = error.RequestUserHostAddress; cmd.Parameters[3].Value = error.RequestUrl; cmd.Parameters[4].Value = error.RequestUrlReferrer; cmd.Parameters[5].Value = error.RequestRequestType; cmd.Parameters[6].Value = error.RequestHttpMethod; cmd.Parameters[7].Value = error.RequestContentEncoding; cmd.Parameters[8].Value = error.InnerException_Message; cmd.Parameters[9].Value = error.InnerException_Source; cmd.Parameters[10].Value = error.InnerException_StackTrace; cmd.Parameters[11].Value = error.InnerException_TargetSite; cmd.Parameters[12].Value = error.Message; cmd.Parameters[13].Value = error.Source; cmd.Parameters[14].Value = error.StackTrace; cmd.Parameters[15].Value = error.TargetSite; cmd.Parameters[16].Value = WebSiteId; cmd.Parameters[17].Value = error.Id; cmd.Parameters[18].Value = error.RequestCookie; cmd.Parameters[19].Value = error.RequestHeaders; cmd.Parameters[20].Value = error.RequestForms; cmd.ExecuteNonQuery(); conn.Close(); } }
0 0
- .net 读取独立的配置文件
- 简易配置文件的读取(VB.NET)
- vb.net读取配置文件
- vb.net 读取配置文件
- vb.net(vs2010)读取配置文件
- asp.net页面读取配置文件
- .net core 2.0 读取配置文件
- .net中webform,winform读取xml配置文件的方法
- asp.net网站运行时,读取的配置文件总是网站根目录的配置文件
- 读取配置文件的类
- 配置文件的读取
- 配置文件的读取(.config)
- 配置文件的读取
- JDBC配置文件的读取
- 数据库配置文件的读取
- JAVA [ 配置文件的读取 ]
- 配置文件的读取
- openstack 配置文件的读取
- git push origin master
- Python 之 sklearn 实现 PCA 降维
- IntelliSense: #error 指令: Please use the /MD switch for _AFXDLL builds
- 多式样ProgressBar
- Android4.3 蓝牙BLE初步
- .net 读取独立的配置文件
- Fragment的应用
- 笔记
- Mysql组合查询-UNION-多个SELECT语句作为单个查询结果返回
- Matlab连接数据库mysql
- 27-网络编程-20-网络编程(常见客户端和服务端)
- js中2个等号与3个等号的区别
- 【连载】实用小demo连载 4 —— css3+js 大转盘 demo
- hdu 2203 亲和串(kmp)