Domanda

Da qualche tempo sto memorizzando le mie impostazioni di connessione e app in un file esterno e facendo riferimento a quel file tramite il mio web.config. Funziona davvero bene perché mi consente di mantenere stringhe di connessione e impostazioni dell'app separate. Questo è molto utile poiché trovo che durante lo sviluppo apporterò spesso molte modifiche al webconfig e odio dover gestire i valori specifici dell'ambiente ogni volta che devo aggiornare il mio web.config.

Esiste comunque un risultato che posso ottenere con le sezioni di configurazione SMTP in web.config.

È stato utile?

Soluzione

Certo, puoi usare l'attributo configSource.

Esempio:

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

Quindi inserisci i dati di configurazione di mailSettings in MailSettings.config

Quindi il tuo file MailSettings.config avrà qualcosa del tipo:

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

Aggiorna : sembra che potrebbe essere necessario andare effettivamente nel nodo smtp per funzionare correttamente, quindi ho aggiornato il codice sopra per indicare che - stessa idea, solo questa dovrebbe funzionare. :)

Altri suggerimenti

Non sono sicuro che ciò che ho qui sia solo per le versioni più recenti di .NET. Ho ricevuto un errore di runtime utilizzando la risposta accettata.

Aggiornare la risposta accettata con il blocco di codice riportato di seguito se si lavora con versioni più recenti di .NET. Il nodo smtp dovrebbe anche essere nel file separato, non solo nel nodo di rete. L'intero nodo smtp nel file Web.config effettivo viene sostituito dal file che hai inserito lì, a differenza delle impostazioni dell'app in cui sembra aggiungerci.

Web.config -

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

Il tuo file -

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

Il mio software lo memorizza nel registro, anche in produzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top