System.Configuration web.config et app.config
-
20-09-2019 - |
Question
Lors de l'utilisation d'un dll tiers, je recevais l'exception suivante:
ExePath doit être spécifiée lorsqu'ils ne sont pas en cours d'exécution dans un exe autonome
avec la trace suivante
System.Configuration.ConfigurationManager.OpenExeConfigurationImpl (ConfigurationFileMap FileMap, Boolean isMachine, ConfigurationUserLevel userLevel, String ExePath).
La raison pour laquelle j'ai trouvé qu'il cherchait app.config et j'avais fourni les détails dans web.config. Ma question est: pourquoi la différence entre System.Configuration web.config et app.config? Toute pensée?
La solution
Exécutables:
Plusieurs executables .NET peuvent vivre dans le même répertoire. Comme il ne peut y avoir deux fichiers avec le même nom dans le même répertoire, les applications doivent utiliser des noms différents pour leurs fichiers de configuration. Le schéma de applicationName.exe.config
résout ce.
Applications Web / sites:
applications Web .NET sont compilés pour les DLL et les sites Web sont généralement compilés juste à temps. Par conséquent, il y a dans ces types de projets ne « point d'entrée ». Il est possible de créer un projet web où chaque page est compilée à sa propre assemblée. Lequel est l'assemblage principal? Quel ensemble doit nous nommer le fichier de configuration après?
Heureusement, un seul projet Web peut être hébergé dans un répertoire unique, donc un seul fichier de configuration principal va vivre ici. Cela permet le nom du fichier principal de configuration à choisi par convention, et que le nom du fichier se trouve être web.config
.
Autres conseils
web.config
est pour votre site web et des applications web uniquement. Il reste fixe, à savoir ne change pas son nom; il est toujours appelé web.config
.
app.config
est pour les applications non-web - WinForms, WPF, services NT, etc. Ce sera rebaptisés YourApplicationName.exe.config
lorsque vous créez votre projet. Vous trouverez jamais un app.config
par ce nom dans le répertoire d'une application (ou si vous le faites, il ne sera pas utilisé).
Pourquoi Microsoft choisissent d'utiliser deux types différents de noms - Je ne sais pas - demander à Microsoft
.Vous avez donc fondamentalement juste savoir ce que vous avez affaire à fournir les informations et au bon endroit.