我收到一条错误消息,说我的应用程序的web.config文件中的一个连接字符串已经定义。
我检查了IIS设置,当我检查连接字符串属性时,它已经存在条目类型:继承。
所以我上了链,一直走到localhost的根目录,检查了那里的连接字符串。
我在那里找到了一堆连接字符串..但是他们也都是Entry Type Inherited ..
我检查了wwwroot文件夹中的web.config文件,但没有找到在那里定义的任何连接字符串..
这些连接字符串可以来自何处?...
答案 0 :(得分:2)
.NET中的配置文件按以下顺序继承:
systemroot\Microsoft .NET\Framework\versionNumber\CONFIG\Machine.config
systemroot\Microsoft .NET\Framework\versionNumber\CONFIG\Web.config
(仅限ASP.NET)(application directory)\Web.config
因此,显示为“inherited”的连接字符串在上面两个文件中指定。
参考:MSDN: ASP.NET Configuration File Hierarchy and Inheritance
如果您不想更改机器范围的配置,可以<clear />
在应用程序的配置中继承它们,如What does <clear /> signify when specifying a connectionstring?中所述:
<connectionStrings>
<clear />
<add name="LocalSqlServer" connectionString="..." />
</connectionStrings>