मैं एमवीसी 4 के साथ उपयोग करने के लिए एक मोंगोडीबी/मेमोरी संयुक्त आउटपुट कैश प्रदाता को लागू करने की कोशिश कर रहा हूं। यहाँ मेरी प्रारंभिक दिया गया है:विशिष्ट नियंत्रक क्रियाओं के लिए कस्टम आउटपुट कैश प्रदाता का चयन
public class CustomOutputCacheProvider : OutputCacheProvider
{
public override object Get(string key)
{
FileLogger.Log(key);
return null;
}
public override object Add(string key, object entry, DateTime utcExpiry)
{
return entry;
}
public override void Set(string key, object entry, DateTime utcExpiry)
{
}
public override void Remove(string key)
{
}
}
और मेरे वेब config प्रविष्टि:
<caching>
<outputCache defaultProvider="CustomOutputCacheProvider">
<providers>
<add name="CustomOutputCacheProvider" type="MyApp.Base.Mvc.CustomOutputCacheProvider" />
</providers>
</outputCache>
</caching>
और HomeController भीतर उपयोग:
[OutputCache(Duration = 15)]
public ActionResult Index()
{
return Content("Home Page");
}
मेरे समस्या यह है, जब मैं के लिए लॉगफ़ाइल जाँच जिन चाबियों का अनुरोध किया गया है, मैं न केवल घर नियंत्रक के लिए अनुरोध देखता हूं, बल्कि अन्य सभी पथ भी देखता हूं:
a2/ <-- should only log this entry
a2/test
a2/images/test/50115c53/1f37e409/4c7ab27d/50115c531f37e4094c7ab27d.jpg
a2/scripts/jquery-1.7.2.min.js
मुझे लगा है कि मुझे कस्टमऑटपुट कैशप्रोवाइडर को वेब में डिफ़ॉल्ट प्रदाता के रूप में सेट नहीं करना चाहिए। कॉनफिग, जो मुझे पता नहीं लगा कि कैश प्रदाता को निर्दिष्ट करना है जिसे मैं एक विशिष्ट नियंत्रक कार्रवाई के लिए उपयोग करना चाहता हूं।
Asp.Net वेब पृष्ठों के साथआप पेज के शीर्ष पर <%@ OutputCache Duration="60" VaryByParam="None" providerName="DiskCache" %>
का उपयोग करके इसे पूरा कर सकते हैं, लेकिन MVC के लिए एकमात्र समाधान मैं मिल सकता है Global.asax में HttpApplication.GetOutputCacheProviderName Method ओवरराइड करने के लिए है।
क्या [आउटपुट कैश] विशेषता का उपयोग करके इसे पूरा करने का एक और शानदार तरीका है?
एक और सुझाव जोड़ा गया! – bUKaneer
ब्याज से 'ए 2/टेस्ट' क्या है और यह मूल अनुरोध 'ए 2 /' के साथ कैसे फिट है? –
वास्तव में कोई विचार नहीं, मैं जो अनुरोध करता हूं वह है http: // host/test'। एमवीसी ए 2 जोड़ता है (देखें [आउटपुट कैशएट्रिब्यूट सीएस] (http://aspnetwebstack.codeplex.com/SourceControl/changeset/view/98d041ae352f#src%2fSystem.Web.Mvc%2fOutputCacheAttribute.cs)) कुंजी –