2011-09-30 16 views
5

.NET 4.0 kullanarak C# ile yazılmış bir RESTful WCF web hizmetim var ve yanıtların GZip veya deflate kullanılarak sıkıştırılmasını istiyorum. (İstekler için sıkıştırmayı da desteklemem gerekebilir, ancak bu henüz bir gereksinim değildir). IIS barındırma bir seçenek olmadığı için bir windows hizmeti, yani kendi kendini barındırılan WCF hizmeti olarak dağıtılacaktır.Kendinden barındırılan RESTful WCF web servisinde GZip sıkıştırması nasıl etkinleştirilir?

Aramalarım şu ana kadar kısa sürmedi. Çoğu isabet, ya IIS'de sıkıştırmayı açmak ya da SOAP tabanlı bir hizmet için özel bir ileti kodlayıcısı yazmak ya da benim senaryolarıma uymak için kullanılır.

Bunu nasıl yapacağınız konusunda herhangi bir işaretçiniz varsa, büyük bir memnuniyetle karşılanacaktır!

cevap

1

GZip sıkıştırmasını kendi kendine barındırılan bir senaryoda yapmak istiyorsanız, özel kodlayıcı rotasını (http://msdn.microsoft.com/en-us/library/ms751458.aspx kodlu örnek) gerçekten kullanmanız gerekir (4.5 üzerinde çift kodlamada sıkıştırma için destek var gibi görünüyor, MSDN WCF Forums adresindeki duyuru başına, ancak 4.0 için kutudan çıkmıyor.) Özel kodlayıcı neden senaryonuz için çalışmıyor?

+0

Hemen yanıt verdiğiniz için teşekkürler. Özel kodlayıcının gitmenin yolu olmadığından emin değilim, ancak bağlandığınız örnek bir SOAP hizmetidir ve bunu WCF RESTful hizmeti için nasıl değiştireceğimi tam olarak bilmiyordum. Bir daha bakacağım. –

+0

GZipMessageEncodingBindingElement öğesinin varolan bir kodlama ciltleme öğesini geçerek oluşturması için bir örnek oluşturabilirsiniz - WebMessageEncodingBindingElement öğesini (SOAP için kullanılmayan) iletirseniz, GZip kullanan son noktanız da SOAP kullanmayacaktır. – carlosfigueira

İlgili konular