1

我正在尝试将我们所有的连接字符串移动到外部文件,但我无法让我们的生产应用程序运行 - 发布时我们收到一条错误消息:

**

Web.config 连接字符串参数不能为空或为空。

**

我想知道 Release 转换是否不起作用。

仅供参考 - 我们将所有文件属性设置Copy To Output DirectoryCopy Always

我们有 5 个文件 -

1) Web.config
2) Web.Release.config
3) Web.Debug.config
4) Configurations\Debug.Conn.config
5) Configurations\Release.Conn.config

开发:( 这是有效的)

Web.config&Web.Debug.config包含:

<connectionStrings configSource="Configurations\Debug.Conn.config" />

配置源指向我们的本地开发数据库并且正在工作:

Configurations\Debug.Conn.config:

<connectionStrings>
  <add name="AppDB" 
    connectionString="Data Source=DESKTOP-ABCDEF;Initial Catalog=MyApp;Integrated Security=True" 
    providerName="System.Data.SqlClient" />
</connectionStrings>

对于生产:( 这不起作用)

Web.Release.config包含:

<connectionStrings xdt:Transform="Replace" configSource="Configurations\Release.Conn.config" />

configSource 指向我们的生产数据库。

Configurations\Release.Conn.config:

<connectionStrings>
  <add name="AppDB" connectionString="Data Source= ... Production Database ... '" />
</connectionStrings>

--

首先:在我寻找答案的所有过程中,我只能找到有关使用 Web.config 主文件进行转换的帖子 - 几乎没有提到使用外部文件使用configSource

其次:当我删除外部文件并将数据直接放入 Web.config 文件时,转换工作——但这​​违背了我们试图做的事情的目的。

所以 - 我不知道在发布时从替换连接字符串中获取生产数据库缺少什么。

4

0 回答 0