天之道,不争而善胜。
网上有好多关于自己解析xml文件来修改web.config的办法,这些暂且不说。我看的资料里也有用Configuration与ConfigurationManager.OpenExeConfiguration修改配置文件的方法。但是都讲的没头没尾的,真是搞不懂。可能他们都说的是应用程序吧。一、ConfigurationManager.OpenExeConfiguration的问题ConfigurationManager.OpenExeConfiguration有两个重载,ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal)和ConfigurationManager.OpenExeConfiguration(Server.MapPath("web.config"));经过实验我发现,在网上上,ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal)不能使用,而Configuration和ConfigurationManager.OpenExeConfiguration其实不能直接对文件进行修改。
posted on 2006-10-16 14:56 Birdshover 阅读(1859) 评论(10) 编辑 收藏 所属分类: ASP.Net2.0
你自己写的有问题 参考我写的代码 using System.Configuration; using System.Web.Configuration; using System.IO; /// <summary> /// SystemConfig 的摘要说明 /// </summary> public static class SystemConfig { private static Configuration ConfigFile; private static KeyValueConfigurationCollection SysConfig; static SystemConfig() { ConfigFile = WebConfigurationManager.OpenWebConfiguration("/"); SysConfig = ConfigFile.AppSettings.Settings; } public static void set(string module, string key, string value) { KeyValueConfigurationElement el = SysConfig[module + "_" + key]; if (el == null) { SysConfig.Add(module + "_" + key, value); } else { el.Value = value; } //同步更新 ConfigFile.Save(); } 回复 引用
完全可以自己更新Web.config,只需要对它有写权限就行了 回复 引用
IIS不对其进行保护吗? 回复 引用 查看
楼上的,难道对自己使用自己的东西也限制吗? 回复 引用
http://www.cnblogs.com/overred/archive/2006/02/18/333004.html 回复 引用
如果修改了config文件,是不是会引进项目的重新编译?导致网站死掉几分钟? 回复 引用 查看
OpenExeConfiguration方法的另外一个重载: public static Configuration OpenExeConfiguration ( string exePath ) ,其中exePath参数要求提供的是可执行文件的路径,比如我的项目属性为windows application,项目名称为MyExe,编译后的文件名为MyExe.exe,那么我的调用就是: System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration("MyExe.exe"); 然后,读到的Configuration文件是MyExe.exe.config。 回复 引用
我也知道微软大概是这个意思,但是程序员不一定都知道.那么如果出现使用这种情况而问题解决不了怎么办?要么干脆不能用,至少也要提示一下.要么就要对的. 回复 引用 查看
不错呀,我用的是别的config代替 但不能修改。 回复 引用 查看
这样就可以了。很简单的。你用的那个是让你指定EXE程序,然后他自动去找config文件。所以出现了你的情况。 ExeConfigurationFileMap map = new ExeConfigurationFileMap(); map.ExeConfigFilename = configfilepath; ConfigFile = ConfigurationManager.OpenMappedExeConfiguration( map, ConfigurationUserLevel.None ); SysConfig = ConfigFile.AppSettings.Settings; KeyValueConfigurationElement el = SysConfig[key]; if (el == null) { SysConfig.Add(key, value); } else { el.Value = value; } //同步更新 ConfigFile.Save(); 回复 引用 查看