J'ai un projet en cours d'exécution sur 2 serveurs. 1 testeur avec une connexion à un testDB et un sur le serveur réel, avec DB réel. P>
La seule chose différente de chacune des instances de course de ce projet est la web.config. p>
Ce que j'aimerais faire, c'est avoir la possibilité de définir une valeur dans web.config, un bool, qui pourrait ensuite être lu par le code. Ce bool serait vrai si l'application est en mode test. Je l'installerais manuellement, le projet le lirait alors, et quand c'est vrai, les mails l'application enverraient, puis seraient conservés internes, afin que les gens ne reçoivent pas de courrier. Je l'ai déjà fait avec définition d'un est-ce possible? ou s'il y aurait-il une belle autre solution? P> Static Static Bool code> dans
global.asax code> mais dans ASP.NET MVC Tout est intégré à une DLL, donc je ne peux donc pas le changer sur le serveur déployé. Dans ce cas. P>
6 Réponses :
Pourquoi n'utilisez-vous pas appSettings code>?
<configuration>
<appSettings>
<add key="myValue" value="true"/>
</appSettings>
....
ASP.NET Webdeploy vous permet de transformer automatiquement votre web.config en fonction de votre déploiement. Par exemple, il peut envoyer une chaîne de connexion lors du déploiement du serveur de test et une chaîne de connexion différente lors du déploiement de Live Server. P>
Oui, vous pouvez:
static public String GetWebConfigKey(string appSettingsKey) { String value = ""; System.Configuration.AppSettingsReader asr = new System.Configuration.AppSettingsReader(); try { value = asr.GetValue(appSettingsKey, System.Type.GetType("System.String")).ToString(); } catch (KeyNotFoundException knfe) { throw new KeyNotFoundException("KeyNotFoundException occured in UtilityLibrary.WebConfig.getWebConfigKey" + knfe.Message); } catch (Exception ex) { throw new Exception(ex.Message); } return value; }
Cela attirant l'exception générale est un mauvais exemple, comment ne pas attraper des exceptions. Quel est son avantage? Vous avez de toute façon une exception, seulement vous en savez moins à ce sujet ...
Vous pouvez utiliser votre web.config pour le faire, à l'aide d'appsetting (ConfigurationManager.appsetting ["Key"])
ou, si l'application Yuor s'exécute en mode de débogage sur le serveur de test, vous pouvez le faire, p>
Si vous utilisez Visual Studio 2010, je vous recommanderais d'utiliser des fichiers de transformation pour transformer le web.config. Plus vous en avez des différences, plus cela vous aidera. P>
Les étapes de haut niveau: p>
Comme les autres ont dit que c'est ce que la section qui peut être accessible à l'aide de WebConfigurationManager p> Cependant, strong> p> Si vous ne souhaitez pas envoyer de courriels lorsque vous testez, vous pouvez utiliser le web.config pour configurer .NET pour vider les courriels à un répertoire local plutôt que d'expédier au serveur de messagerie p> Ceci fonctionnera si votre code ne remplace pas les paramètres de serveur SMTP par défaut de courrier par défaut. P> P> appsettings code> de votre web.config est pour