Файл configSource 'mycustom.config' также используется в родительском файле, это запрещено
Если вы были разработаны ASP.NET веб-сайт в VS2010. (или до VS2015)
И ваш сайт использует виртуальный путь, например " http://localhost:12345/myvirpath"
И у вас есть файл конфигурации для настройки с помощью configSource в Web.config, например:
<configuration>
<configSections>
<section name="MyConfig" type="mydomain.MyConfig_Model, mydomain" />
</configSections>
<ConfigRoot configSource="mycustom.config" />
...
</configuration>
Вы можете хорошо тестировать в разработке, и вы можете без проблем запустить свой сайт по виртуальному пути в Production IIS.
Все работает хорошо
Но когда вы откроете свое решение в VS2015.
Поскольку VS2015 больше не предоставляют "ASP.NET Development Server".
Вы должны использовать IISEXPRESS для разработки и тестирования вашего веб-сайта.
Но когда вы используете IISEXPRESS и задаете "URL проекта" как " http://localhost:12345/myvirpath" в свойствах веб-проекта.
Нажмите "F5", вы получите сообщение об ошибке:
Файл configSource 'mycustom.config' также используется в родительском файле, это запрещено.
Причина в том, что IISEXPRESS создаст 2 сайта: " http://localhost:12345/" и " http://localhost:12345/myvirpath"
Оба сайта будут указывать на один и тот же физический путь, и это запрещено.
Так что там будет это сообщение об ошибке.
Я гуглил эту проблему много дней, и у меня есть последний способ решить эту проблему и поделиться ею здесь.
Решение:
Откройте ваше решение в VS2015.
Сделайте URL проекта " http://localhost:12345/myvirpath" в свойствах вашего веб-проекта.
Флажок "Переопределить корневой URL-адрес приложения" не требуется.
Откройте конфигурацию IISEXPRESS по адресу: "$(solutionDir).vs\config\applicationhost.config", в разделе
вы обнаружите, что оба пути "/" и "/ myvirpath" используют один и тот же физический путь. <site name="MyWeb.Web-Site" id="2"> <application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="D:\MyWeb\MyWeb.Web" /> </application> <application path="/myvirpath" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="D:\MyWeb\MyWeb.Web" /> </application> <bindings> <binding protocol="http" bindingInformation="*:55923:localhost" /> </bindings> </site>
Теперь измените физический путь "/" на другой путь, например:
<application path="/" applicationPool="Clr4IntegratedAppPool"> <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" /> </application>
Сохрани это. И теперь вы можете использовать "F5" для выполнения вашего веб-проекта без сообщения об ошибке.