1

我在服务器中部署了一个网站。有一天,它抛出了一个错误,说该connection string名称已添加。我检查了 web.config 文件,它的名称只有一个条目。我从配置中删除了该条目。现在该网站运行良好并从数据库中获取数据。

注意:当我更改配置文件的名称时,它会显示错误。

我认为,问题是——连接字符串部分缓存在内存中。是这样吗?我们如何克服这种不受欢迎的行为?

源代码中的配置文件

发布配置

<system.web>
 <compilation xdt:Transform="RemoveAttributes(debug)" />

</system.web>

调试配置

<system.web>

</system.web>

参考:

  1. 我发布的 Web 配置中出现不需要的连接字符串的问题
  2. .NET 2.0 App.Config 连接字符串包含不需要的 SQLExpress 默认值
4

1 回答 1

5

这不是问题 - 当您更改web.config文件时,IIS 进程会重置,因此不会涉及任何缓存。

更有可能的是,父目录或子目录的web.config文件包含相同的连接字符串名称 - 这会导致错误。

您可以通过多种方式解决该问题:

  • 确保在正确范围内只有一个web.config具有连接字符串名称
  • 使用remove元素:

    <connectionStrings>
     <remove name="theConnectionString" />
     <add name="theConnectionString" ... />
    <connectionStrings>
    

有关相关问题,请参阅Encrypted config file does not apply “remove” tag in connectionStrings

于 2013-01-10T12:56:55.190 回答