2012-03-09 10 views
9

Ho sentito (e letto) molte opinioni relative alle quali è meglio: riutilizzare un client di servizio WCF o crearne uno ogni volta. Ma non sono mai riuscito a capire cosa succede esattamente in quelle situazioni. E oltre alle opinioni, in realtà non ho trovato qualcosa di "ufficiale" (come una pagina di msdn che dice che è meglio, perché e quando).Riutilizzare un client di servizio WCF o crearne uno ogni volta?

Nello sviluppo delle mie applicazioni raramente ho avuto problemi con la creazione (e la chiusura) di una volta ogni volta (i processi di creazione e chiusura non aggiungevano nel tempo di elaborazione nemmeno un millisecondo). Ma in alcuni casi riutilizzare un client di servizio WCF ha davvero apportato un cambiamento (in senso positivo). Questi sono stati osservati da me in pratica, senza avere un motivo veramente logico.

Quindi qualcuno può spiegarmi esattamente in che modo è migliore? E in quale situazione? Dipende dal caricamento del client? L'utilizzo di Web Garden su IIS influenzerà la scelta?

risposta

5

Microsoft consiglia di caching per la creazione di client: http://msdn.microsoft.com/en-us/library/aa738757.aspx (controllare le 'questioni da considerare' parte)

Nella versione iniziale di WCF c'è stato un problema di prestazioni la creazione del canale di fabbrica, creando così un cliente ogni causa prestazioni in tempo i problemi. Abbiamo dovuto creare e memorizzare nella cache la fabbrica del canale. Microsoft ha risolto questo problema con un aggiornamento (.NET Framework SP1?) E la cache non è più necessaria.

Fondamentalmente, la differenza di prestazioni, dopo la correzione, è trascurabile, soprattutto considerando che si sta effettuando una chiamata tramite rete.

+0

"SP1" di * quale * framework? – user2864740

Problemi correlati