Bir parent'de configSource dosyası 'connections.config' de kullanılır, buna izin verilmez.


9

Soru:

Aşağıdaki durumla karşılaşıyorum:

Makine "vmsomething" üzerine dağıtılmış bir ASP.NET .NET 4.0 web uygulaması.

IIS 7.5 üzerinde çalışan web uygulaması, vmsomething üzerinde d: \ webs \ myapplication içinde bulunur.

Uygulamanın yapılandırma dosyaları:

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>

Daha sonra uygulamaya iki şekilde erişebilirsiniz:
Birinci Yöntem: http://vmsomething.com
İkinci Yöntem: http://vmsomething.com/my_application_virtdir
(.com olmadan yerel bağlantılar ekleyemezsiniz)

Şimdi uygulamayı http://vmsomething.com açabilirsiniz .
Uygulamayı http://vmsomething.com/my_application_virtdir üzerinde açmaya çalışırsam , bu hatayı alıyorum:

Yapılandırma Hatası

Sunucunun yöneticisi değilim ve sunucuyu nasıl yapılandırdığını bilmiyorum.
Şimdi sorum:

  • Bu hataya ne sebep olur?
  • Nasıl düzeltebilirim?

Yanıtlar:


9

Bunun nedeni, aynı fiziksel klasörü hedefleyen iki web sitenizin olmasıdır. Ve web.config dosyasında kalıtım var .

http://vmsomethingebeveyn ve http://vmsomething/my_application_virtdironun çocuğudur. Alt web.config öğesi tüm öğeleri üst öğesinden devralır. Ve web.config genellikle bu senaryoda çalışmak üzere tasarlanmamıştır. Nuget'ten yüklenen diğer yardımcı programlar web.config dosyanızı değiştirmeye çalıştığında çok fazla baş ağrısı alabilirsiniz.

Eğer web sitenize erişmek istiyorsanız http://vmsomething/my_application_virtdiro zaman en kolay çözüm için http://vmsomethingfarklı bir şey için fiziksel yolu değiştirmek olacaktır sanırım .

Web sitenizin virtdir belirtmeden nasıl çalıştığını test etmek isterseniz, IIS'de (Varsayılan Web Sitesi değil) ayrı bir web sitesi yapılandırabilir ve aynı fiziksel yola hedefleyebilirsiniz. Böylece, her iki dağıtım yöntemini de aynı anda test edebileceksiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.