Ho un progetto ASP.NET MVC che aveva bisogno di essere ospitato su due server differenti. So che questo sembra strano ma questo è il requisito del mio cliente.Host progetto ASP.NET MVC in due server fisici
Nel dettaglio, avrò 2 carico server bilanciati
- Web Server - esporre a pubblico (dominio punterà al IP del pubblico di questo server)
- App Server - comunicare con interno infrastrutture (Active Directory, database, sicurezza, ecc)
Sto pensando di creare un altro strato (API Web ASP.NET), in modo che il server web serva solo pagine HTML, il server app conterrà le logiche di business e esporrà endpoint per tutti i client (web, mobile) a chiamata. Il server Web comunicherà con App Server tramite servizi RESTFUL.
C'è un modo migliore di fare? Qualsiasi soluzione sarà molto apprezzata.
Grazie in anticipo,
Capisco il vantaggio di questa architettura, ma in questa situazione, ASP.NET MVC non funzionerà (vista e controller sono strettamente accoppiati). Esiste comunque la possibilità di separare il progetto MVC senza modificare tutto? –
Ah, vedo cosa stai cercando di fare ora. No, non puoi prendere un progetto MVC esistente e dividerlo, come dici tu i controller e le viste sono strettamente accoppiati. Aggiornerò la mia risposta con una spiegazione più dettagliata, ma sì, è necessario rimuovere la logica aziendale dai controller MVC. – Mourndark
Quando si effettuano chiamate da controller MVC a controller Webapi, è necessario effettuare chiamate interne o chiamate di servizi Web? Ho anche problemi con l'autenticazione del modulo perché la logica di autenticazione corrente viene scritta nel livello MVC, ci vorranno così tanti sforzi per spostarlo nel livello WebAPI. Inoltre, avrei bisogno di implementare nuovamente la logica e di proteggere l'API (consentire solo la connessione dell'app di fiducia) per renderla più solida. C'è qualche idea? Grazie –