Do sistema.configuração web.configuração e aplicativo.config
-
20-09-2019 - |
Pergunta
Enquanto usando um terceiro dll eu estava recebendo a seguinte exceção:
exePath deve ser especificado quando não estiver sendo executado dentro de um stand alone exe
com o rastreamento seguinte
Do sistema.De configuração.ConfigurationManager.OpenExeConfigurationImpl(ConfigurationFileMap fileMap, Boolean isMachine, ConfigurationUserLevel userLevel, Cadeia exePath).
A razão que eu encontrei foi que ele estava olhando para o app.config e eu tinha fornecido os detalhes na web.config.A minha pergunta é:por que razão o sistema.configuração de diferenciar entre web.configuração e aplicativo.config?Quaisquer pensamentos?
Solução
Executáveis:
Vários .NET executáveis podem viver no mesmo diretório.Como não podem existir dois arquivos com o mesmo nome e no mesmo diretório, os aplicativos devem usar nomes diferentes para seus arquivos de configuração principal.O applicationName.exe.config
regime resolve isso.
Aplicações Web / sites:
.NET aplicações web são compilados para DLLs, e web sites são geralmente compilados just-in-time.Portanto, não é "o ponto de entrada principal" nestes tipos de projetos.É possível criar um projeto da web, onde cada página é compilado para a sua própria montagem.Qual é o principal de montagem?Que a montagem deve se temos o nome do arquivo de configuração depois?
Felizmente, apenas um projeto da web pode ser hospedada a partir de um único diretório, portanto, apenas um arquivo principal de configuração vai viver aqui.Isso permite que o ficheiro de configuração principal nome a ser escolhido pela convenção, e que o nome do arquivo acontece para ser web.config
.
Outras dicas
web.config
é apenas para o seu site e aplicativos da Web. Ele permanece fixo, o IE não muda de nome; é sempre chamado web.config
.
app.config
é para aplicações que não sejam da Web - Winforms, WPF, NT Services etc. Isso será renomeado para YourApplicationName.exe.config
Quando você constrói seu projeto. Você nunca encontrará um app.config
Por esse nome, no diretório de um aplicativo (ou, se o fizer, ele não será usado).
Por que A Microsoft escolhe usar dois tipos diferentes de nomes - eu não sei - pergunte à Microsoft.
Então, basicamente, você basicamente precisa saber com o que está lidando e fornecer as informações no local correto.