Domanda

Ho bisogno di un processo che compili i dati giornalieri in un PDF che verrà allegato in una e-mail. Ho già usato MSSQL per inviare e-mail nell'applicazione in fase di sviluppo e vorrei continuare a utilizzare MSSQL come processore di posta elettronica.

Nella mia ricerca, ho scoperto che ciò può essere ottenuto creando un servizio Windows. Ma, dal momento che voglio davvero che questo processo venga eseguito solo una volta al giorno; mantenere un servizio Windows sempre attivo sembra essere eccessivo.

Non ho mai usato l'utilità di pianificazione per eseguire un'applicazione autocostruita. Voglio assicurarmi di farlo nel modo corretto. A quanto ho capito, dovrò ...

  1. Crea un nuovo progetto (Progetto X) in Visual Studio
  2. Programma (Progetto X) per generare il PDF e interagire con MSSQL per inviare l'e-mail
  3. Compilare (Progetto X) in un EXE
  4. Pianifica il file EXE utilizzando l'Utilità di pianificazione per essere eseguito su qualsiasi pianificazione di cui ho bisogno.

Ci sono aspetti di sicurezza di cui dovrei preoccuparmi? Solo quelli a cui riesco a pensare sono la crittografia della mia stringa di connessione MSSQL; e, ovviamente, mantenendo il file EXE fuori dalla directory accessibile dal web in cui risiede l'app web.

Grazie in anticipo per l'aiuto / la conferma poiché so che alcuni penseranno che questa sia una domanda sciocca.

È stato utile?

Soluzione

L'unica cosa che posso vedere che non hai preso in considerazione è l'identità con cui l'Utilità di pianificazione eseguirà il tuo EXE, ma ciò non dovrebbe preoccupare troppo visto come sembri controllare tutto nell'ambiente.

Altri suggerimenti

Come osserva Esteban: funzionerà solo con il tuo account e rimarrai connesso alla macchina? In tal caso, quello rappresenta il rischio maggiore per la sicurezza. È possibile utilizzare uno screen saver per forzare una richiesta di accesso ed è ampiamente vero che questo non è meno sicuro della disconnessione. Tuttavia, dubito che questo sarebbe considerato "best practice."

Vorrei prendere in considerazione la creazione di un servizio Windows che si sveglia semplicemente una volta al giorno. Non sono davvero molto difficili da costruire, anche se ti consigliamo di avere un buon meccanismo di test (una classe indipendente che compili in una DLL testabile dall'unità è una buona idea) poiché testarli una volta che sono in esecuzione è molto difficile . Ma non lasciare che il "mistero" delle app di servizio o l'idea dell'utilizzo delle risorse ti scoraggia. Sarai sorpreso di quanto siano facili. Per quanto riguarda le risorse ... stai spendendo più risorse mantenendo in esecuzione un'app Winforms completa!

Se si desidera creare un servizio Windows, è possibile impostarlo per l'avvio all'avvio del server (su cui risiede il database). Avrei un sistema di tracciamento esterno per l'invio di e-mail, eventualmente in un database separato. All'avvio del server, viene avviato anche il servizio. Il servizio controlla se un'e-mail è stata inviata oggi. In caso contrario, crea e-mail, invia e-mail, quindi contrassegnalo nel registro (la tabella db presumo). Quindi attendere il servizio per 24 ore, quindi ricontrollare (utilizzando un evento). Ripetere.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top