Chiamare gli eseguibili da una WebAPI di ASP.NET

2

Ho un'applicazione Angular con una tabella e sto considerando che l'applicazione della console prende il nome di programmi C # che l'utente può eseguire.

Stavo pensando di passare il nome o il codice dell'applicazione della console a un controller WebAPI ASP.NET che eseguirà l'applicazione della console.

Tuttavia, non sono sicuro che sia l'architettura "giusta" per il controller in ASP.NET WebApi per chiamare diverse applicazioni console. O se dovessi avere uno strato tra WebApi e chiamare gli eseguibili.

Per favore fammi sapere se è il modo giusto o dovrei pensare ad un approccio diverso.

    
posta rds80 05.12.2018 - 22:39
fonte

1 risposta

3

Non è una buona idea che un web api chiami un eseguibile. Ci sono una serie di problemi che devi considerare.

1: Sicurezza

In pratica stiamo esponendo la linea di comando al web. Qualsiasi difetto nel modo in cui avviamo l'applicazione console può consentire a un utente malintenzionato di eseguire comandi imprevisti

2: Esaurimento di thread

Con un'app Web ci aspettiamo che ogni richiesta venga risolta prontamente, ma non sappiamo per quanto tempo l'app della console potrebbe essere eseguita. Potremmo finire per esaurire le risorse

3: Problemi di autorizzazione

Per impostazione predefinita l'app della console verrà eseguita come lo stesso utente in cui viene eseguito il pool di applicazioni. Avrà abbastanza autorizzazioni? avrà troppe autorizzazioni? dovresti impersonare un altro utente quando esegui l'app.

4: Si chiude?

Non tanto un problema con un'app console, ma prova a far scattare qualcosa come Excel e guarda la tua memoria sparire

L'opzione migliore consiste nel togliere la logica aziendale dall'applicazione console e utilizzarla direttamente come libreria. Ma se non hai il codice sorgente questo potrebbe non essere possibile.

Cerca i prodotti alternativi che offrono un'API o una libreria

Se devi davvero eseguire le app della console, puoi farlo. Basta fare attenzione in più

    
risposta data 05.12.2018 - 23:24
fonte

Leggi altre domande sui tag