Je comprends que asp.net le noyau d'un nouveau système de configuration qui est très flexible et c'est génial. Mais il y a des choses que j'aime sur le web.config en fonction de la configuration du système à partir de .net 4.x. Par exemple, on peut mettre des commentaires dans le site web.fichier de configuration depuis un fichier xml. Et qui pour moi vaut la peine de coller avec xml plutôt que d'aller avec le tout nouveau json approche. [Mise à jour: maintenant, je comprends que le json approche prend également en charge les commentaires dans le fichier.]
Donc, si j'ai un Asp.Net Web de Base du Projet qui vise le plein cadre, il semble que je devrais être en mesure d'utiliser le web.config basée System.Configuration.ConfigurationManager.AppSettings[key]
approche pour l'obtention d'un paramètre.
Mais quand j'essaie, la valeur revient toujours null (au moins avec IIS express à l'aide d'VS2015).
Il devrait fonctionner correctement? Toute réflexion sur ce que je pourrais être plus de la recherche?
Web.config
<configuration>
<appSettings>
<add key="SomeSetting" value="true"/>
</appSettings>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
</system.webServer>
</configuration>
Code de paramètre d'accès:
string key = "SomeSetting";
string setting = ConfigurationManager.AppSettings[key];
if (setting == null)
throw new Exception("The required configuration key " + key + " is missing. ");
Mise à JOUR
Après plusieurs recherche je comprends maintenant pourquoi il ne fonctionne pas, mais je n'ai toujours pas trouvé un moyen pour résoudre ce problème. La cause semble être que le ConfigurationManager est à la recherche pour les informations de configuration dans un fichier différent et pas dans le web.config.
Ceci peut être vu en regardant AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
de la propriété. Dans mon cas, au lieu de pointer vers l' website_folder\web.config
c'est plutôt pointant website_folder\bin\Debug\net461\win7-x64\wwwGiftOasisResponsive.exe.Config
où website_folder est le chemin vers le dossier contenant mon site web.
La documentation et l'intellisense dire AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
est réglable propriété mais quand j'essaie, je trouve que le réglage ne change pas la valeur. Très bizarre.
Ainsi, alors que je vois maintenant ce que le problème est que je n'arrive pas à trouver un moyen pour résoudre ce problème.