Файл configSource 'connection.config' також використовується у батьківській програмі, це заборонено.


9

Питання:

Я стикаюся з такою ситуацією:

Веб-додаток ASP.NET .NET 4.0, розгорнуте на машині "vmsomething".

Веб-додаток, що працює на IIS 7.5, знаходиться у d: \ webs \ myapplication на vmsomething.

Конфігураційні файли програми:

connections.config

<?xml version="1.0"?>
<connectionStrings>
  <remove name="server"/>
  <add name="server" connectionString="Data Source=OUR_DB_Server;Initial Catalog=MY_INITIAL_CATALOG;Persist Security Info=False;User Id=OUR_DB_User;Password=OUR_TOP_SECRET_PASSWORD;MultipleActiveResultSets=False;Packet Size=4096;Application Name=&quot;MyApplication&quot;" providerName="System.Data.SqlClient"/>
</connectionStrings>

web.config:

<?xml version="1.0"?>
<configuration>

  <connectionStrings configSource="connections.config"/>

  <system.web>
    <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider"/>
    <compilation strict="true" explicit="true">
      <assemblies>
        <add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="Microsoft.JScript, Version=8.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
      </assemblies>
    </compilation>
    <authentication mode="Windows"/>
    <pages>
      <namespaces>
        <clear/>
        <add namespace="System"/>
      </namespaces>
    </pages>
    <customErrors mode="Off">
      <error statusCode="404" redirect="~/w8/index.html"/>
    </customErrors>
    <globalization uiCulture="de" culture="de-CH" requestEncoding="UTF-8" responseEncoding="UTF-8"/>
    <httpRuntime maxRequestLength="2048000" executionTimeout="86400"/>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
  </system.webServer>
</configuration>

Тоді ви можете отримати доступ до програми двома способами:
Спосіб перший: http://vmsomething.com
Спосіб другий: http://vmsomething.com/my_application_virtdir
(без .com, не можна додавати локальні посилання)

Тепер я можу відкрити додаток на http://vmsomething.com просто чудово.
Якщо я спробую відкрити програму на http://vmsomething.com/my_application_virtdir , я отримую цю помилку:

Налаштування помилки

Я не адміністратор сервера, і не знаю, як він це налаштував.
Тепер до мого питання:

  • Що викликає цю помилку?
  • Як це виправити?

Відповіді:


9

Причина в тому, що у вас є два веб-сайти, націлені на одну фізичну папку. І існує спадщина в web.config .

http://vmsomethingє батьком і http://vmsomething/my_application_virtdirє його дитиною. Дочірня web.config успадковує всі елементи від свого батьківського. І web.config зазвичай не призначений для роботи в такому сценарії. Ви можете отримати багато головних болів, коли інші утиліти, встановлені з nuget, спробують змінити ваш web.config.

Якщо ви хочете отримати доступ до свого веб-сайту, http://vmsomething/my_application_virtdirя думаю, найпростішим рішенням буде змінити фізичний шлях http://vmsomethingна щось інше.

Якщо ви хочете перевірити, як працює ваш веб-сайт, не вказуючи virtdir, ви можете налаштувати окремий веб-сайт у IIS (не веб-сайт за замовчуванням) та націлити його на той самий фізичний шлях. Тоді ви зможете протестувати обидва способи розгортання одночасно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.