2011-09-30 14 views
5

मेरे पास .NET 4.0 का उपयोग कर सी # में लिखा गया एक विश्वसनीय डब्ल्यूसीएफ वेब सेवा है, और मैं प्रतिक्रियाओं को जीज़िप या डिफ्लेट का उपयोग करके संपीड़ित करना चाहता हूं। (मुझे अनुरोधों के लिए संपीड़न का समर्थन करने की आवश्यकता हो सकती है, लेकिन यह अभी तक एक आवश्यकता नहीं है)। इसे विंडोज़ सेवा के रूप में तैनात किया जाएगा, यानी स्वयं-होस्टेड डब्ल्यूसीएफ सेवा, क्योंकि आईआईएस होस्टिंग एक विकल्प नहीं है।एक स्व-होस्टेड रीस्टफुल डब्ल्यूसीएफ webservice में GZip संपीड़न को कैसे सक्षम करें?

मेरी खोज अब तक कम हो गई है। अधिकांश हिट या तो आईआईएस में संपीड़न को चालू करने या एसओएपी आधारित सेवा के लिए एक कस्टम संदेश एन्कोडर लिखने के लिए हैं, न तो या जो मेरे परिदृश्य में फिट है।

यदि आपके पास ऐसा करने के लिए कोई संकेतक है, तो इसकी सराहना की जाएगी!

उत्तर

1

आपको वास्तव में कस्टम एन्कोडर मार्ग (http://msdn.microsoft.com/en-us/library/ms751458.aspx पर कोड के साथ नमूना) के लिए जाना है, यदि आप एक स्व-होस्टेड परिदृश्य में GZip संपीड़न करना चाहते हैं (4.5 पर ऐसा लगता है कि बाइनरी एन्कोडिंग पर संपीड़न के लिए समर्थन है, MSDN WCF Forums पर घोषणा के अनुसार, लेकिन यह 4.0 के लिए बॉक्स के बाहर मौजूद नहीं है)। कस्टम एन्कोडर आपके परिदृश्य के लिए क्यों काम नहीं करता है?

+0

तुरंत जवाब देने के लिए धन्यवाद। मुझे यह सुनिश्चित करने के लिए पता नहीं है कि कस्टम एन्कोडर जाने का तरीका नहीं है, लेकिन आपके द्वारा लिंक किया गया नमूना एक एसओएपी सेवा है, और मुझे यह सुनिश्चित नहीं था कि इसे डब्ल्यूसीएफ रीस्टफुल सेवा के लिए कैसे संशोधित किया जाए। मैं इसे और देख लूंगा। –

+0

आप GZipMessageEncodingBindingElement का एक उदाहरण बना सकते हैं जो मौजूदा एन्कोडिंग बाध्यकारी तत्व को पास कर रहा है - यदि आप WebMessageEncodingBindingElement (जिसे SOAP के लिए उपयोग नहीं किया जाता है) पास करते हैं, तो GZip का उपयोग करके आपका एंडपॉइंट या तो SOAP का उपयोग नहीं करेगा। – carlosfigueira