Я пытаюсь прочитать строку подключения, определенную в web.config, из службы Windows. Имя сайта 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;
}