【问题标题】:Add connectionstring to web.config if not already set如果尚未设置,请将连接字符串添加到 web.config
【发布时间】:2017-02-18 16:53:30
【问题描述】:

我正在寻找一种方法,仅当具有该名称的 connectionString 不存在时才将 connectionString 添加到我的 web.config 文件中。

例如:

我在当前的 web.config 文件中有这个设置

<connectionStrings>
    <add name="myDB" providerName="System.Data.SqlClient" connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=myDB;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False" />
</connectionStrings>

在生产服务器上的 IIS 设置中,我还为“myDB”添加了连接字符串,这样我的源中就没有生产连接字符串。 [Image of the IIS settings]

如果我现在要将我的 WebApp 部署到 IIS,我会收到一条消息,指出已经有一个名为“myDB”的条目。

当 IIS 服务器设置中还没有设置时,有没有办法只使用 web.config 文件中的 connectionString?

【问题讨论】:

  • 这是不可能的。您可以使用构建配置和 web.config 转换来实现类似的效果,但 web.config 文件没有“如果不存在则添加”指令。

标签: iis web-config connection-string


【解决方案1】:

您可以在添加之前使用&lt;remove&gt; 标记删除连接字符串。如果&lt;remove&gt; 标记中指定的连接字符串不存在,则不会发生任何事情,因此无论是否已添加连接字符串,这都应该有效。

<connectionStrings>
    <remove name="myDB" />
    <add name="myDB" providerName="System.Data.SqlClient" connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=myDB;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False" />
</connectionStrings>

【讨论】:

    猜你喜欢
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 2012-05-31
    • 2011-05-11
    • 1970-01-01
    相关资源
    最近更新 更多