我收到一条错误消息,说我的应用程序的web.config文件中的连接字符串之一已经定义。

我检查了IIS设置,当我检查了连接字符串属性时,该条目已经具有Entry Type:Inherited了。

因此,我上了链,一直到本地主机的根,并检查了那里的连接字符串。

我在那里也找到了一堆连接字符串..但是它们也都带有Entry Type Inherited ..

我检查了wwwroot文件夹内的web.config文件,但未在其中找到任何定义的连接字符串。

这些连接字符串从哪里来?

c# - 哪里可以找到IIS管理器连接字符串的位置-LMLPHP

最佳答案

.NET中的配置文件按以下顺序继承:


systemroot\Microsoft .NET\Framework\versionNumber\CONFIG\Machine.config
systemroot\Microsoft .NET\Framework\versionNumber\CONFIG\Web.config(仅ASP.NET)
(application directory)\Web.config


因此,在上方的两个文件中的任何一个中都指定了显示为“继承”的连接字符串。

参考:MSDN: ASP.NET Configuration File Hierarchy and Inheritance

如果您不想更改计算机范围的配置,可以按照What does <clear /> signify when specifying a connectionstring?中的说明在应用程序的配置中<clear />继承它们:

<connectionStrings>
   <clear />
   <add name="LocalSqlServer" connectionString="..." />
</connectionStrings>

10-06 13:30
查看更多