Domanda

Ho un servizio WCF che viene utilizzato in modo sincrono, ma la sua ConcurrencyMode sia impostata sul valore ConcurrencyMode.Multiple, perché il servizio è senza stato in realtà. Quanto in alto fa questa modalità impone? Ha senso per cambiare la modalità di ConcurrencyMode.Single?

È stato utile?

Soluzione

Realmente non impone alcun overhead - a parte il fatto che l'istanza di servizio singolo deve gestire l'accesso concorrente, deve essere 200% sicuro filo -. E che è abbastanza difficile programmazione

Il passaggio a ConcurrencyMode.Single rende la programmazione più semplice - niente più preoccupazioni per la concorrenza nella classe di servizio. Ma serializza tutte le richieste -. Solo uno alla volta può mai essere gestito, e quindi diventerà un collo di bottiglia velocemente

Lei parla il vostro servizio è senza stato - quindi perché non ne fanno uso il solito concordato migliori pratiche - non un Singleton, ma un normale "per chiamata" classe di servizio. In questa modalità, ogni richiesta ottiene una nuova istanza fresco della vostra classe di servizio, non c'è agitarsi sulla programmazione multithread necessario (tutto il multithreading è gestita dal runtime WCF), si ottiene la gestione simultanea di più richieste - Per me, questo è solo benefici e non verso il basso i lati!

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