WCF - utilizzando più associazioni tra cui REST (webHttpBinding) su una libreria di servizi?
-
13-09-2019 - |
Domanda
Voglio esporre il mio livello di servizio (che è attualmente scritto come libreria di classi di serie con pocos) per l'esterno così come il consumo interno. I client esterni useranno sopra le API REST di stile, mentre internamente la mia MVC applicazione utilizzerà sopra net.tcp vincolante per migliorare le prestazioni.
Come faccio a fare questo con eleganza? Posso scrivere 2 involucri uno per il riposo con VS2010 Beta 2 è dotato di riposo e altri utilizzando le associazioni standard di WCF.
Posso fare questo in un unico involucro? o meglio solo refactoring miei servizi attuali WCF ed esporre su vari endpoint utilizzando attacchi diversi, come webHttpBinding, WsHttpBinding, ecc.
Saluti,
Ajay
Soluzione
La vostra biblioteca servizio conterrà solo l'implementazione del servizio - il servizio (e dati) i contratti devono essere nella loro propria assemblea separata "Contratti"
.La questione di hosting e il protocollo da utilizzare è gestita dal servizio di host - questo può essere IIS o un servizio NT separato o una console app o qualcosa del genere. Questo è il tutto indipendente della classe di servizio e la vostra libreria di servizio.
Quindi sì - si può facilmente creare una libreria di servizi e quindi esporre che il servizio nel corso di un gran numero di endpoint nel vostro ospite del servizio -. Queste due cose devono essere tenuti completamente separati l'uno dall'altro
Altri suggerimenti
Certo si può semplicemente aggiungere più di loro per il file di configurazione o utilizzando il codice.
VS 2010 Beta 2 di caratteristiche resto sono essi stessi costruito sulla cima di WCF, quindi se si desidera utilizzarli si dovrà refactoring il servizio in un servizio WCF in ogni caso. A quel punto, come dicono Dani e marc_s, si può facilmente aggiungere endpoint aggiuntivi al servizio tramite il file di configurazione.