Question

Depuis quelque temps, je stocke mes paramètres de connexion et d'application dans un fichier externe et ne fais que référencer ce fichier via mon fichier web.config. Cela fonctionne vraiment bien car cela me permet de conserver des chaînes de connexion et des paramètres d'application distincts. C’est très pratique, car au cours du développement, je suis souvent amené à apporter de nombreuses modifications à la configuration Web et je déteste devoir gérer les valeurs propres à l’environnement chaque fois que je dois mettre à jour mon Web.config.

Est-ce que je peux y arriver de toute façon avec les sections de configuration SMTP dans le fichier web.config.

Était-ce utile?

La solution

Bien sûr, vous pouvez utiliser l'attribut configSource.

Exemple:

<system.net>
  <mailSettings>
   <smtp configSource="MailSettings.config"/>
  </mailSettings>
</system.net>

Placez ensuite vos données de configuration mailSettings dans MailSettings.config

.

Votre fichier MailSettings.config aurait alors quelque chose comme:

    <network 
    host="relayServerHostname" 
    port="portNumber"
    userName="username"
    password="password" />

Mettre à jour : il est possible qu'il soit nécessaire que le noeud smtp fonctionne correctement. J'ai donc mis à jour le code ci-dessus pour indiquer que - même idée, seul celui-ci devrait fonctionner. :)

Autres conseils

Je ne sais pas si ce que j'ai ici ne concerne que les versions les plus récentes de .NET. J'ai eu une erreur d'exécution en utilisant la réponse acceptée.

Veuillez mettre à jour la réponse acceptée avec le bloc de code ci-dessous si vous utilisez des versions plus récentes de .NET. Le nœud smtp doit également figurer dans un fichier séparé, pas uniquement le nœud de réseau. L'ensemble du noeud smtp du fichier Web.config actuel est remplacé par le fichier que vous y avez placé, contrairement à appSettings où il semble y être ajouté.

Web.config -

  <system.net>
        <mailSettings>
          <smtp configSource="your-source-file">
          </smtp>
        </mailSettings>
    </system.net>

Votre fichier -

   <smtp from="noreply@example.com">
      <network
        host="your-host"
        port="your-port"
        userName="your-user-name"
        password="your-password"/>
    </smtp>

Mon logiciel le stocke dans le registre, même en production.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top