![IIS 未获取继承的连接字符串](https://linux22.com/image/646800/IIS%20%E6%9C%AA%E8%8E%B7%E5%8F%96%E7%BB%A7%E6%89%BF%E7%9A%84%E8%BF%9E%E6%8E%A5%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
因此,这个问题与以下内容重复:IIS 7.5 - 为什么我的配置文件未被选中但那里没有答案,IIS 连接字符串未被继承有一个答案,但是接受的答案对我没有帮助。
我们在 C:\Windows\Microsoft.Net 下的每个 .NET 框架版本下为 32 位和 64 位配置设置了连接指针,以指向我们设置的文件夹 C:\TSNetConfig。
因此我们有:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\TSNetConfig
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\TSNetConfig
TSNetConfig
连接指针在哪里?在TSNetConfig
文件夹下,我们有一个SystemWideConnectionStrings.xml
文件,其中包含我们所有应用程序的所有连接字符串。
我们编辑每个配置文件夹下的machine.config文件,使其包含以下内容:
<connectionStrings configSource="TSNetConfig\SystemWideConnectionStrings.xml" />
但是,出于某种原因,当我们查看 IIS 中每个站点的连接字符串时,它只有一个默认字符串,该字符串是在部署应用程序时发布的。它不会选择任何其他字符串。我们在其他几台 IIS 服务器上使用此设置,它们填充得很好;但是,此服务器上的任何应用程序都不会选择它们。
我已经检查过一些事情:
- 确保应用程序池设置为在正确的框架版本上运行
- 确保应用程序池默认在正确的框架版本上运行,如我链接的第二个问题中所建议的那样
有什么建议么?
答案1
连接字符串似乎是从以下位置获取的。
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config 和 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config