我一直在编写一个将在实时Web服务器上运行的c#exe,但我希望能够在我们的登台服务器上进行测试。由于登台服务器在我的localhost中具有不同的数据库设置(在app.config中),有没有什么方法可以将连接字符串存储在app.config之外,以便我可以轻松访问它?
此外,是否可以存储数据库连接字符串,然后通过app.config访问它?这可能听起来很奇怪,但我使用的是来自使用.config文件中的值的CMS的dll。
答案 0 :(得分:4)
如何在每个位置使用不同的app.config?
答案 1 :(得分:2)
您可以将任何.NET配置部分“外部化”为单独的文件,并从app.config
引用它。
因此,在您的情况下,您会在app.config
中找到类似的内容:
<connectionStrings configSource="connectionstrings.dev.config" />
然后为例如创建单独的配置DEV,TEST,PROD环境,具有不同的名称。他们的内容将是:
<?xml version="1.0"?>
<connectionStrings>
-- your connection string here, as normal
</connectionStrings>
您可以使用任意数量的这些单独文件,而切换只意味着更改主app.config
中的一行以引用相应的外部connectionstrings.ABC.config
文件。
答案 2 :(得分:1)
而不是在app.config
创建带有前缀的数据库设置,例如DevConnectionString
和ProdConnectionString
。然后,再创建一个app.config
元素,告诉您所在的环境。
在开发期间,该环境设置为“Dev”。
部署代码时,请将app.config
中的environment元素更改为“Prod”。
如果要在代码中检索数据库设置,首先要检查环境值,然后相应地选择数据库设置。
此主题的一个变体是在每台计算机上的Windows中创建一个环境变量,并在您的代码中查询该变量。
答案 3 :(得分:0)
您可以将其存储在您想要的位置:在文本文件中,在环境变量中,将其作为命令行参数传递。
您只需编写代码来读取连接字符串并将其传递给您的数据访问。
当您告诉我们您如何访问数据库时,我可以向您展示如何传递连接字符串。
但也许每个环境使用不同的配置文件会更好。
答案 4 :(得分:0)
这取决于你如何使用它。它只是一个字符串,所以基本上你可以将它存储在你喜欢的任何地方,但如果你使用的是一些期望连接字符串在app.config中的库,你必须找到一种不同的方式来为它提供字符串。 / p>
然而,app.config
文件很容易找到。它只是一个XML格式的文本文件,因此您可以使用任何文本编辑器进行编辑,例如记事本。它虽然已部署,但未命名为app.config
,它从应用程序名称获取文件名,扩展名为.config
。
答案 5 :(得分:0)
您可以为连接字符串滚动自己的配置,并根据当前环境调用它,例如dev.config,qa.config,prod.config等,并将其名称保存到App.config中。
此外,您可以向Machine.config添加记录,例如调用Environment并在读取App.config时考虑它以确定环境配置,即:
Machine.config中:
<environment name="Dev" />
App.config中:
<environments>
<environment name="Dev" config="dev.config" />
<environment name="QA" config="qa.config" />
...
</environments>