Pergunta

Preciso ter um processo que compila dados diários em um PDF que será anexado em um email. Eu já usei o MSSQL para enviar e -mails no aplicativo que está sendo desenvolvido e gostaria de continuar usando o MSSQL como processador de email.

Em minha pesquisa, descobri que isso pode ser alcançado criando um serviço do Windows. Mas, como estou realmente querendo que esse processo seja executado uma vez por dia; Manter um serviço sempre ativo do Windows parece estar exagerado.

Eu nunca usei o Agendador de tarefas para executar um aplicativo auto-construído. Quero ter certeza de que estou fazendo isso da maneira correta. Pelo que entendi, terei que ...

  1. Crie um novo projeto (Projeto X) no Visual Studio
  2. Programa (Projeto X) para gerar o PDF e interagir com o MSSQL para enviar o email
  3. Construir (projeto x) em um exe
  4. Agende o exe usando o agendador de tarefas para executar em qualquer programação que eu precisar.

Existem aspectos de segurança com os quais devo me preocupar? Somente os que consigo pensar estão criptografando minha string de conexão mSSQL; E, é claro, mantendo o exe fora do diretório acessível à Web em que o aplicativo da Web reside.

Agradeço antecipadamente pela ajuda/confirmação, pois sei que alguns acharão que essa é uma pergunta boba.

Foi útil?

Solução

A única coisa que posso ver que você não considerou é a identidade de qual agendador de tarefas executará seu exe, mas isso não deve ser uma preocupação demais para ver como você parece controlar tudo no ambiente.

Outras dicas

Como Notas Esteban: isso estará sendo executado em sua conta e você ficará assinado na máquina? Se for assim, este é o seu maior risco de segurança. Você pode usar um protetor de tela para forçar um prompt de login e é muito verdadeiro que isso não é menos seguro do que o login. No entanto, duvido que isso seja considerado "melhores práticas".

Eu consideraria a construção de um serviço do Windows que simplesmente acorda uma vez por dia. Eles realmente não são muito difíceis de construir, embora você queira ter um bom mecanismo de teste (uma classe independente que você compila em uma DLL de teste de unidade é uma boa idéia), pois testá-los depois que estiver funcionando é muito difícil . Mas não deixe o "mistério" dos aplicativos de serviço ou a idéia de uso de recursos o adiar. Você ficará surpreso com o quão fácil eles são. No que diz respeito aos recursos ... você está gastando mais recursos mantendo um aplicativo Winforms completo em execução!

Se você deseja criar um serviço do Windows, pode configurá -lo para iniciar quando o servidor (que o banco de dados reside) inicia. Eu teria um sistema de rastreamento externo para enviar os e -mails, possivelmente em um banco de dados separado. Quando o servidor é iniciado, seu serviço também começa. O serviço verifica se um email foi enviado hoje. Caso contrário, crie email, envie email e marque -o no log (a tabela DB que eu presumo). Em seguida, deixe o serviço dormir por 24 horas e depois marque novamente (usando um evento). Repetir.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top