【发布时间】:2019-10-09 08:21:23
【问题描述】:
我正在尝试从 Windows 服务读取 web.config 中定义的连接字符串。站点名称为MySite,托管在IIS 上的http://localhost:31000,物理路径为C:\inetpub\wwwroot\MySite
问题是以下代码总是从系统级 machine.config 而不是本站点的 web.config 读取连接字符串。我尝试了不同的设置和代码,但结果相同。我做错了什么?
var configFile = new FileInfo(@"C:\inetpub\wwwroot\MySite\web.config");
var vdm = new System.Web.Configuration.VirtualDirectoryMapping(configFile.DirectoryName, true, configFile.Name);
var wcfm = new System.Web.Configuration.WebConfigurationFileMap();
wcfm.VirtualDirectories.Add("/", vdm);
Configuration config = System.Web.Configuration.WebConfigurationManager.OpenMappedWebConfiguration(wcfm, "/");
ConnectionStringsSection csSection = config.ConnectionStrings;
for (int i = 0; i < ConfigurationManager.ConnectionStrings.Count; i++)
{
ConnectionStringSettings cs = csSection.ConnectionStrings[i];
if (cs.Name == 'SQLServerConnectionString')
return cs.ConnectionString;
}
【问题讨论】:
标签: c# iis web-config windows-services connection-string