【问题标题】:Where to store connection string? And change it programmatically在哪里存储连接字符串?并以编程方式更改它
【发布时间】:2017-08-22 10:10:01
【问题描述】:

我是 asp.net 的新手。我需要永久存储一些字符串(又名连接字符串)。如果我将它存储在 web.config 中,它看起来不错。

我需要用户可以通过 web ui 修改它的字符串。这就是为什么我必须以编程方式进行的原因。但是 ApplicationPoolIdentity 没有对 web.config 的写入权限。而且我不想打扰管理员以便他们授予权限。

我认为我可以将数据存储在 {user}\AppData 中的某个文件中,但默认情况下,App Pool 不会加载用户配置文件。 UPDATE 不太对。我不确切知道默认设置是什么。但我仍然无法访问文件夹。查看我配对的question UPDATE2 我现在可以访问 LocalAppData 并且可以存储我的连接字符串。我必须编写一个启用加载用户配置文件的安装程序。但我认为这是太复杂的解决方案。

那么我可以在哪里存储字符串并以编程方式修改它而无需任何 IIS 管理?

【问题讨论】:

  • 有多个选项,您可以将其存储在数据库中,或者创建一个文本文件来存储您的数据,如果您有多个配置,请在项目目录中创建一个 xml 文件并将数据存储在 xml 节点中.
  • 这似乎是XY Problem。您相信更改连接字符串会解决您没有告诉我们的其他问题。有数百万甚至数十亿不需要此功能的 asp.net 应用程序。这解决了什么问题?

标签: asp.net asp.net-mvc iis


【解决方案1】:

在数据库中存储连接字符串对我来说似乎不合逻辑,因为您必须连接到数据库才能读取连接字符串。

更好的地方是web.config。如果您更改连接字符串,则 IIS 可能会重新启动您的应用程序,但这会很好,因为当您更改数据库服务器的位置或密码时,您将更改连接字符串。 IIS 重新启动将确保在每个地方都使用新的连接字符串。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-12
  • 1970-01-01
  • 2011-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多