Jaki jest najprostszy sposób na dodanie kompresji do WCF w Silverlight?

Mam aplikację beta 2 silverlight 2, która uzyskuje dostęp do usługi internetowej WCF. Z tego powodu obecnie może używać tylko podstawowego wiązania HTTP. Usługa internetowa zwróci dość duże ilości danych XML. Wydaje się to dość marnotrawstwem z punktu widzenia wykorzystania przepustowości, ponieważ odpowiedź, jeśli spakowana, byłaby mniejsza o współczynnik 5 (faktycznie wkleiłem odpowiedź do pliku txt i spakowałem ją).

Żądanie ma „Accept-Encoding: gzip, deflate” - Czy istnieje sposób, w jaki usługa WCF gzip (lub w inny sposób kompresuje) odpowiedź?

Znalazłem topołączyć ale z pewnością wydaje się to nieco skomplikowane, jeśli chodzi o funkcjonalność, którą należy obsłużyć natychmiast po zainstalowaniu IMHO.

OK - na początku oznaczyłem rozwiązanie wykorzystujące System.IO.Compression jako odpowiedź, ponieważ nigdy nie „mogłem” uzyskać dynamicznej kompresji IIS7. Jak się okazuje:

Kompresja dynamiczna na IIS7było pracując razem. Po prostu wtyczka Nikhil Web Developer Helper dla IE nie pokazała, że ​​działa. Domyślam się, że odkąd SL przekazuje przeglądarkę do serwisu internetowego, przeglądarka obsługuje ją „pod osłonami”, a narzędzie Nikhila nigdy nie widzi skompresowanej odpowiedzi. Udało mi się to potwierdzić za pomocą Skrzypka, który monitoruje ruch na zewnątrz aplikacji przeglądarki. W skrzypku odpowiedź była skompresowana gzip !!

Innym problemem związanym z rozwiązaniem System.IO.Compression jest to, że System.IO.Compression nie istnieje w Silverlight CLR.

Z mojego punktu widzenia najłatwiejszym sposobem włączenia kompresji WCF w Silverlight jest włączenie kompresji dynamicznej w IIS7 i całkowity brak kodu.

questionAnswers(4)

yourAnswerToTheQuestion