2011-08-30 11 views
9

Tengo un problema con una biblioteca .NET 3.5 que estoy desarrollando para enviar correos electrónicos. puse la configuración system.net en app.config:Configuración de SmtpClient y app.config system.net

<system.net> 
    <mailSettings> 
    <smtp from="[email protected]"> 
     <network host="myserver.com" port="25" defaultCredentials="true" /> 
    </smtp> 
    </mailSettings> 
</system.net> 

Y instancia del SmtpClient sin params:

SmtpClient client = new SmtpClient(); 

embargo, la configuración no se lee (estoy tratando de probar la biblioteca con NUnit) y Obtengo un System.InvalidOperationException, porque la configuración no se lee y, por lo tanto, el host es nulo.

¿No debería leerse la configuración automáticamente?

+1

Tuve un problema similar hace más de 2 años: http://stackoverflow.com/questions/737946/net-configuration-section-designer-where-is-my-collection/738501#738501 –

+0

Gracias John. Acababa de llegar a la misma conclusión ...;) ¡Debería haber pensado más en eso definitivamente! – mamoo

Respuesta

12

Asegúrese de agregar su bloque de configuración (como se muestra arriba) a {appName} .exe.config o web.config - la configuración para la biblioteca de clases se toma de uno de esos archivos en tiempo de ejecución, no desde la aplicación .config de la biblioteca de clase.

+0

Gracias por su respuesta Davide. Es una biblioteca de clases y estoy tratando de probarlo con NUnit (¿hace alguna diferencia?), De todos modos la sección está presente en el archivo .config, así que todavía estoy atascado ... – mamoo

+0

eres el más bienvenido, Le di una respuesta similar a la misma pregunta hace algunas semanas, es un error común que también hice en el pasado :) –

0

Me acabo de dar cuenta de que definitivamente lo estoy haciendo de la manera incorrecta (también está a similar post from John about it y la solución está ahí ...).

La configuración de correo está disponible solo a nivel de aplicación, por lo que el proyecto de prueba debe conocer su configuración para tenerla en cuenta.

¡Gracias a John y Davide por orientarme en la dirección correcta!

Cuestiones relacionadas