我有一个非常严重的问题。 客户有一个SQL Server。随着数据。 我编写的应用程序仅供内部使用。 (因此,不需要Web服务等。) 本程序通过连接到数据库的ConnectionString使用DataSet及其它。 Connectionstring存储在我未选择的App.Exe.Config中。它是由数据集制作的。 ConnectionString在开始时为空。 但是用于连接的数据存储在加密文件中。我正在读取数据并将其放入connectionString。
下面的代码在调试时可以完美地工作。
但问题现在出在:我已经创建了一个安装程序,现在在Program Files文件夹中安装后,它说它无权保存配置。我的意思是我知道所有的意思。但是,应用程序可以保存它吗? 当我以管理员身份打开它时,它保存了配置。 将完全访问权限设置为“所有人”无效。
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var connectionStringsSection =(ConnectionStringsSection)config.GetSection("connectionStrings"); connectionStringsSection.ConnectionStrings["ApplicationName.Properties.Settings.managementSQLConnectionString"].ConnectionString = String.Format(@"Data Source={0}\{1};Initial Catalog={2};User ID={3};Password={4};MultipleActiveResultSets=True", _DatabaseLocation, _DatabaseName, _Catalog, _Username, _Password);
try {
config.Save(ConfigurationSaveMode.Full);
}
catch (Exception err) {
NotificationController.Notify("Config-Error", err.Message,
System.Windows.Forms.ToolTipIcon.Warning);
}
ConfigurationManager.RefreshSection("connectionStrings");