Le file configSource 'connections.config' est également utilisé dans un parent, ce qui n'est pas autorisé.

Question:

Je suis confronté à la situation suivante:

Une application Web ASP.NET .NET 4.0 déployée sur machine "vmsomething".

L'application Web s'exécutant sur IIS 7.5 réside dans d: \ webs \ myapplication sur vmsomething.

Fichiers de configuration de l'application:

connections.config

<?xml version="1.0"?> <connectionSsortingngs> <remove name="server"/> <add name="server" connectionSsortingng="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"/> </connectionSsortingngs> 

web.config:

 <?xml version="1.0"?> <configuration> <connectionSsortingngs configSource="connections.config"/> <system.web> <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider"/> <compilation ssortingct="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> 

Ensuite, on peut accéder à l'application de deux façons:
Méthode 1: http://vmsomething.com
Méthode deux: http://vmsomething.com/my_application_virtdir
(sans .com, ne peut pas append de liens locaux)

Maintenant, je peux ouvrir l'application sur http://vmsomething.com très bien.
Si j'essaie d'ouvrir l'application sur http://vmsomething.com/my_application_virtdir , j'obtiens cette erreur:

Erreur de configuration

Je ne suis pas l'administrateur du server, et je ne sais pas comment il l'a configuré.
Maintenant à ma question:

  • Qu'est-ce qui cause cette erreur?
  • Comment le réparer ?

La raison en est que vous avez deux sites Web ciblés sur le même dossier physique. Et il existe un inheritance dans web.config .

http://vmsomething est le parent et http://vmsomething/my_application_virtdir est son enfant. L'enfant web.config hérite de tous les éléments de son parent. Et le web.config n'est généralement pas conçu pour fonctionner dans un tel scénario. Vous pouvez créer beaucoup de maux de tête lorsque d'autres utilitaires installés à partir de nuget essayeront de modifier votre web.config.

Si vous souhaitez accéder à votre site Web à http://vmsomething/my_application_virtdir je suppose que la solution la plus simple sera de changer le path physique pour http://vmsomething pour quelque chose de différent.

Si vous souhaitez tester la façon dont votre site fonctionne sans spécifier virtdir, vous pouvez configurer un site Web distinct dans IIS (et non sur un site Web par défaut) et le cibler sur le même path physique. Ensuite, vous pourrez tester les deux façons de déployer en même time.