Resultados (
español) 2:
[Dupdo]Copiado!
Yo he experimentado el dolor de este problema. Después de 2 años de investigación no he sido capaz de determinar la causa exacta del problema con mi aplicación .NET. Hay una serie de cuestiones y las opciones de implementación que ayudarán a minimizar el impacto de esta excepción. Ahora estamos en un punto de este problema no afecta a los usuarios finales de una manera notable.
Usted tendrá que asegurarse de algunas de las variables de configuración de SMTP se establecen en el * .config para ayudar a sintonizar la aplicación a su entorno. Tiempo de espera SMTP Client, los reintentos, Tiempo entre reintentos etc. Encontramos unos 20 segundos entre intentos y unos 5 intentos antes de detenerse por completo trabajado.
Usted tendrá que poner en práctica un mecanismo de registro para registrar cuándo y con qué frecuencia se producen, lo que puede establecer la variables anteriores. Yo estaba buscando volumen de mensajes de correo electrónico, la hora del día, las instalaciones de Service Pack, antivirus o interferencia cortafuegos desde el registro de máquinas y servidores caso, para tratar de encontrar una causa.
Implementar un no Blockingcollection para gestionar el envío de todos los mensajes de correo electrónico, porque si el envío de un gran volumen a través del código, el va a ejecutar en el error de tiempo de espera SMTP 4.4.1. Este patrón de consumo de un productor y he encontrado esto una aplicación relativamente fácil de implementar y muy exitoso para este problema. La cola le permite asegurarse de obtener los correos electrónicos serán enviados con el tiempo. Si desea una completa prueba de fallos puede persistir esa cola en el disco también. Nunca tenemos que caer de nuevo en ese trozo de código.
Falsificación o burlarse de la aplicación .NET SMTP a la unidad de probar el código para este problema no era fácil de hacer y sin herramientas de terceros. Yo no ir por este camino, porque al final del día había demasiadas piezas fuera de mi control. Básicamente yo sólo voy a asumir que siempre va a fallar y me coloque un montón de opciones de reserva para esperar a que el problema desaparece por sí solo.
Está traduciendo, por favor espere..