Ho un Silverlight 2 Beta 2 applicazione che accede a un servizio Web WCF. Per questo motivo, al momento può utilizzare solo l'associazione Http di base. Il servizio web restituirà quantità piuttosto elevate di dati XML. Questo sembra abbastanza dispendioso dal punto di vista utilizzo di banda come la risposta, se compresso, sarebbe inferiore di un fattore 5 (in realtà ho incollato la risposta in un file txt e zippato esso.).Qual è il modo più semplice per aggiungere la compressione a WCF in Silverlight?
La richiesta ha il "Accept-Encoding: gzip, deflate" - C'è un modo in cui il servizio WCF gzip (o altrimenti comprime) la risposta?
ho trovato questo link ma sembra certo un po 'complessa per la funzionalità che deve essere maneggiato out-of-the-box IMHO.
OK - in un primo momento mi ha segnato la soluzione utilizzando lo System.IO.Compression come la risposta che ho potuto mai "sembrare" per ottenere la compressione dinamica IIS7 per lavorare. Beh, a quanto pare:
Dynamic Compression su IIS7 era lavorando al lungo. E 'solo che il plug-in di Web Developer Helper di Nikhil per IE non lo ha dimostrato funzionante. La mia ipotesi è che, poiché le mani SL chiamata al servizio Web via al browser, che il browser gestisce "sotto le coperte" e strumento di Nikhil non vede mai la risposta compressa. Sono stato in grado di confermare questo utilizzando Fiddler che monitora il traffico esterno all'applicazione browser. In violinista, la risposta è stata, infatti, compresso gzip !!
L'altro problema con la soluzione System.IO.Compression è che System.IO.Compression non esiste nel Silverlight CLR.
Quindi, dal mio punto di vista, il modo più semplice per abilitare la compressione WCF in Silverlight è quello di consentire dinamica di compressione in IIS7 e scrivere alcun codice a tutti.
La compressione dinamica funziona solo per alcune richieste (ad esempio quelle ritenute da IIS come spesso chiamate). quindi è una bella funzionalità ma non ne hai il controllo. Ho una chiamata molto grande quando un utente effettua l'accesso. Ma succede come una volta al giorno. e non è compresso. –