Pregunta

va a enviar correos electrónicos desde una aplicación de forma programada.

Tengo una EmailController en mi aplicación ASP.NET MVC con métodos de acción, uno para cada tipo de notificación / e-mail, que tendrá que ser llamado en diferentes momentos durante la semana.

Pregunta: ¿Es Programador de Windows (ejecuta en un cuadro Servidor 2008) ni mejor ni peor que la programación de este a través de un trabajo de SQL Server? Y por qué?

Gracias

¿Fue útil?

Solución

En mi humilde opinión que tiene llamada programador en el controlador y ejecutar los métodos de acción de disparar notificaciones funcionó mejor. Mi proceso (para bien o para peor) es como tal:

  1. Ponga el código para llamar al controlador / acción en un archivo .vbs. El método de acción requiere de un "código de seguridad" que debe coincidir con un valor en el web.config o de lo contrario no se ejecutará (mi idea es que esto va a disminuir la posibilidad de alguna gente que golpea el método de acción con allí navegador y ejecuta la notificación de envío código cuando no se debe ejecutar).

  2. Crea una tarea programada en Scheduler para llamar a ese archivo en una base regular.

  3. En mi base de datos, registrar todas las ejecuciones de notificación e incluir un atributo que define la frecuencia en la que diferentes tipos de notificación deben salir. Esto, de nuevo, es para disminuir la posibilidad de que alguien enviar notificaciones cuando no deberían hacerlo.

En cualquier caso, esto funciona. El único problema que tenía estaba golpeando vis https. Eso no funcionó como creo que la tarea estaba siendo desafiado para proporcionar algunas credenciales (que no podía ya que estaba siendo ejecuta mediante programación). Si lo cambia a http trabajados y la OMI no crea ningún tipo de riesgo para la seguridad.

Los pensamientos? Una mejor manera de implementar esto? Me encantaría escuchar nada alguien tiene que ofrecer.

Gracias

Otros consejos

Yo prefiero el envío de mensajes de correo electrónico con un trabajo de servidor SQL. Como ya teníamos varios trabajos que se ejecutan en nuestro servidor SQL tenía sentido seguir con éste enfoque. Si hubiéramos ido por el camino de la tarea programada tendríamos entonces tenía de 2 sistemas de programación de tareas diferentes, que añade una complejidad innecesaria. Con todas las tareas programadas se produce a través de un sistema que es fácil de seguir y mantener ellos.

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