Domanda

Sono nuovo su Wcf e ho provato a creare i miei primi servizi Wcf. Aggiunta classe (nuovo assembly) che ha un codice non gestito ed esegue la manipolazione dei file. Il comportamento del servizio è impostato come segue

InstanceContextMode = InstanceContextMode.Single

ConcurrencyMode = ConcurrencyMode.Single

Quando si accede al servizio è in modalità singola, viene creata la nuova classe di manipolazione dei file. Ho notato che se la classe di manipolazione dei file fallisce (perdita di memoria o errore critico) tutte le nuove connessioni all'host colpite da connessioni precedenti.

È possibile creare istanze Wcf che sono completamente isolate tra loro e completamente distrutte dopo la chiusura della connessione client?

saluti, Tomas

È stato utile?

Soluzione

Sì, questa è la modalità preferita: si chiama " per chiamata " ;:

  

InstanceContextMode =   InstanceContextMode.PerCall

     

ConcurrencyMode =   ConcurrencyMode.Single

In questo modo, ogni richiesta che arriva al tuo servizio WCF otterrà la sua istanza separata, isolata, della classe di servizio, e quell'istanza gestirà la richiesta e quindi verrà eliminata.

Ciò dovrebbe offrire le massime prestazioni e l'isolamento delle richieste reciproche.

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