我收到一条错误消息,说我的应用程序的web.config文件中的连接字符串之一已经定义。
我检查了IIS设置,当我检查了连接字符串属性时,该条目已经具有Entry Type:Inherited了。
因此,我上了链,一直到本地主机的根,并检查了那里的连接字符串。
我在那里也找到了一堆连接字符串..但是它们也都带有Entry Type Inherited ..
我检查了wwwroot文件夹内的web.config文件,但未在其中找到任何定义的连接字符串。
这些连接字符串从哪里来?
最佳答案
.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>