2013-03-28 17 views
18

WCF 4.5 obsługuje GZIP bez bibliotek stron trzecich lub odręcznych rozszerzeń. Mam to działa poprzez Bindowanie TCP, ale nie mogę znaleźć sposobu, aby działało przez HTTP Binding. my wcf - Usługa jest hostowana w usłudze Windows.Jak uzyskać kompresję gzip działającą w WCF 4.5

Addon: nie mogę używać IIS; nie mogę przełączyć się na wymianę WCF.

to działa z gzip:

binding="customBinding" bindingConfiguration="tcpCompressionBinding" name="tcp" 

i to co ja obecnie używać do http:

binding="basicHttpBinding" bindingConfiguration="httpBinding" name="http" 

Dokumentacja nie naprawdę mi pomóc: http://msdn.microsoft.com/en-us/library/dd456789.aspx.

Jednak, zgodnie z tym powinno działać:

Począwszy WCF 4.5 binarny koder WCF dodaje wsparcie dla kompresji. Typ kompresji jest konfigurowany za pomocą właściwości CompressionFormat. Zarówno klient, jak i usługa muszą skonfigurować właściwość CompressionFormat. Kompresja będzie działać dla protokołów HTTP, HTTPS i TCP. Jeśli klient określi użycie kompresji, ale usługa go nie obsługuje, zostanie zgłoszony wyjątek protokołu wskazujący na niezgodność protokołu. Aby uzyskać więcej informacji, zobacz Wybieranie Encoder wiadomość

+0

Jakiś czas czas temu miałem ten sam problem z WCF 4.0 – rekire

+1

nie sądzę. WCF 4.0 nie miał budować poparcia gzip. To 4,5 cecha. – NickD

+0

Nie wiem. – rekire

Odpowiedz

21

Jak na zamówienie skopiowane mój komentarz jako odpowiedź:

„Ponieważ ta nieruchomość jest wystawiona tylko na binaryMessageEncodingBindingElement, trzeba będzie utworzyć niestandardowy wiązania jak poniżej, aby korzystać z tej funkcji:

<customBinding> 
    <binding name="BinaryCompressionBinding"> 
    <binaryMessageEncoding compressionFormat="GZip"/> 
    <httpTransport /> 
    </binding> 
</customBinding> 

i otrzymywać skompresowane wiadomości, a zatem właściwość compressionFormat musi być skonfigurowana na elemencie binaryMessageEncoding na zarówno klienta, jak i usługi. „Zarówno klient, jak i usługa muszą zgodzić się na wysyłanie

+0

Stary post Wiem, ale to nie jest praca g dla mnie. Każdy pomysł, dlaczego? –

Powiązane problemy