मैं अपने एएसपी.नेट एमवीसी वेबसाइट में आउटपुट कैशिंग का उपयोग करने की कोशिश कर रहा हूं। समस्या यह है कि, जब मैं अपने क्वेरीस्ट्रिंग पैराम्स के मान को आजमाता और बदलता हूं, तो यह अनुरोध किया गया था कि पहले आइटम के लिए डेटा वापस कर रहा है!कैशिंग मेरे एएसपी.नेट एमवीसी वेबसाइट में सही काम नहीं कर रहा है?
यहाँ नोट 1 (परम नाम बदल के साथ) मेरी कोड है ...
[ApiAuthorize]
[HandleErrorAsJson]
public class SearchController : Controller
{
[AcceptVerbs(HttpVerbs.Get)]
[OutputCache(Duration = 60, VaryByParam = "*")]
public ActionResult ScoreCard(string foo, byte? bar, byte? pewpew)
{
..
}
}
- : ApiAuthorize - कस्टम विशेषता है कि 'कुंजी' नामक एक क्वेरी स्ट्रिंग परम जांच करता है और स्मृति शब्दकोश में एक की जाँच करता है, यह देखने के लिए कि यह मौजूद है या नहीं।
- नोट 2: हैंडलररएएसजेसन - कस्टम विशेषता जो त्रुटि संदेश को जेसन के रूप में लौटाती है यदि कोई अपवाद/फेंक दिया गया हो।
और यहाँ दो नमूना कॉल मैं इस कार्रवाई के लिए बना रही हूँ है: -
- /प्राप्त http://api.MySite.com/search/scorecard?foo=hello+world,+PewPew&key=abcd1234&bar=2
- /http://api.MySite.com/search/scorecard?foo=invalid+search+stuff&key=abcd1234&bar=2
तो पहली कॉल से डेटा प्राप्त (foo = हैलो वर्ल्ड, प्यू प्यू) 200 ओके के रूप में वापस आ गया है। फिर दूसरा एपीआई कॉल 200 ओके देता है लेकिन पिछले कॉल के डेटा के साथ।
इसके अलावा, मैं किसी भी प्रॉक्सी सर्वर का उपयोग नहीं कर रहा हूं। अगर मैं आउटपुट कैश विशेषता को टिप्पणी करता हूं, तो सब अच्छा है।
मैं भी निम्न (मैन्युअल रूप से हर बार मैं कैश की जरूरत लिस्टिंग) ..... की कोशिश की है
[OutputCache(Duration = 60, VaryByParam = "foo,key,bar,pewpew")]
कोई भाग्य :(
सूचना मैं कैसे यकीन है कि बनाने की जरूरत है मैं कैश अद्वितीय कुंजी के हिस्से के रूप में एपीआई 'कुंजी' पैरामीटर शामिल करें। मैं लोगों को एक ही चीज़ की तलाश नहीं करना चाहता, लेकिन अगर दूसरे व्यक्ति के पास सही कुंजी नहीं है, तो उन्हें कैश किए गए परिणाम नहीं मिलना चाहिए , लेकिन एक त्रुटि संदेश (तकनीकी रूप से, यह एक 401 अधिकृत नहीं है, लेकिन वैसे भी) ...
तू ghts?
+1 सीधे सीधे प्रश्न पर ध्यान केंद्रित किया गया। हालांकि मुझे नहीं लगता कि यह एकमात्र मुद्दा है जो उसके पास है। नीचे भी आपकी टिप्पणी का जवाब दिया। – dove