Pregunta

Desde hace algún tiempo, he estado almacenando mi conexión y la configuración de la aplicación en un archivo externo y solo he hecho referencia a ese archivo a través de mi web.config. Esto funciona realmente bien porque me permite mantener cadenas de conexión y configuraciones de aplicaciones separadas. Esto es realmente útil ya que durante el desarrollo a menudo realizaré muchos cambios en el webconfig y odio tener que administrar los valores específicos del entorno cada vez que necesito actualizar mi web.config.

De todos modos, puedo lograr esto con las secciones de configuración de SMTP en web.config.

¿Fue útil?

Solución

Claro, puedes usar el atributo configSource.

Ejemplo:

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

Luego ponga sus datos de configuración de MailSettings en MailSettings.config

Entonces, su archivo MailSettings.config tendría algo como:

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

Actualizar : parece que en realidad debe ir al nodo smtp para que funcione correctamente, por lo que actualicé el código anterior para indicar que, en la misma idea, solo debería funcionar. :)

Otros consejos

No estoy seguro de si lo que tengo aquí es solo para las versiones más recientes de .NET. Recibí un error de tiempo de ejecución al utilizar la respuesta aceptada.

Actualice la respuesta aceptada con el bloque de código a continuación si trabaja con versiones más recientes de .NET. El nodo smtp también debe estar en el archivo separado, no solo el nodo de red. Todo el nodo smtp en el archivo Web.config real es reemplazado por el archivo que colocó allí, a diferencia de los ajustes de la aplicación donde parece que se agregan.

Web.config -

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

Tu archivo -

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

Mi software lo almacena en el registro, incluso en producción.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top