2009-01-29 18 views
5

मेरे पास आईआईएस में होस्ट की गई डब्ल्यूसीएफ सेवा है और आईआईएस (एचटीपीसीएन्टेक्स्ट.कुरेंट.कैच) के कैश में मौजूद डेटा को वापस करना चाहते हैं इस सेवा को वापस करने के लिए सबसे उपयुक्त विकल्प क्या है?WCF से HttpContext.Current.Cache कैसे वापस करें?

उत्तर

-2

जो कुछ भी प्रकार आप निश्चित रूप से कैश में संग्रहित ... यह हालांकि

+1

यदि कैश मेमोरी में है तो आपको –

14

अगर मैं तुम्हें थे, मैं तथ्य यह है कि सेवा IIS में होस्ट किया गया है पर भरोसा नहीं होता serializable होना चाहिए। क्या होगा यदि आप अपनी डब्ल्यूसीएफ सेवा को किसी अन्य तकनीक के साथ होस्ट करना चाहते हैं? मुझे लगता है कि आपको memcached देखें जो कि अधिक सामान्य कैशिंग समाधान है, और यह .NET के साथ ठीक काम करता है।

वैसे भी, अगर तुम सच में आईआईएस कैश उपयोग करना चाहते हैं, System.Web.HttpRuntime.Cache बजाय HttpContext.Current.Cache का उपयोग करने के रूप में HttpContext हमेशा उपलब्ध नहीं है।

इसके अलावा, जैसा cruizer ने कहा, अपने वस्तुओं के वास्तविक प्रकार के रूप में वे serializable हैं (जो है, कक्षाओं [Serializable()] विशेषता के साथ सजाया जाता) लंबे समय के रूप में पूरी तरह से अप्रासंगिक है। आईआईएस कैश को धारावाहिक वस्तुओं की आवश्यकता नहीं है लेकिन डब्ल्यूसीएफ करता है।

+0

को क्रमबद्ध करने की आवश्यकता नहीं है। केवल आईआईएस के साथ काम करने के लिए अपनी सेवा को तंग करने से बचें। – cruizer

+1

मैं भी सहमत हूं। कृपया डब्ल्यूसीएफ सेवाओं को जोड़े मत करो। यह जुवाल लोई रोता है। System.Web.HttpRuntime.Cache टिप के लिए –

+0

+1। मुझे HttpContext.Current.Cache के साथ समस्या हो रही थी, यह कारण था कि यह कारण था, जब मैं HttpRuntime पर स्विच करता था, धन्यवाद –

2

आप उन्हें अपने परिवहन के क्रम में क्रमबद्ध करते हैं, लेकिन धारावाहिक वस्तुओं को कैश करने की कोई आवश्यकता नहीं है।

आपकी सेवा अनुरोधों को संसाधित करने के लिए आपके व्यावसायिक तर्क को कॉल करती है लेकिन तार पर जो हो जाता है वह आपकी व्यावसायिक वस्तुएं नहीं होनी चाहिए बल्कि आपकी सेवा के डेटा अनुबंध होनी चाहिए।

अपने कैश एपीआई को लपेटें और इसे HttpRuntime कैश से हटा दें। जैसा कि डॉजोके ने कहा, HttpRuntime.Cache के माध्यम से asp.net कैश तक पहुंचें यदि आप ऐसा चुनते हैं।

संबंधित मुद्दे