पर कॉन्फ़िगर किए जाने के बावजूद कैश-कंट्रोल हेडर प्रतिक्रिया में नहीं भेजे गए हैं, मैं एएसपी.नेट एमवीसी वेब एपीआई में कैश हेडर सेट करने की कोशिश कर रहा हूं, लेकिन आईआईएस की प्रतिक्रिया से पता चलता है कि कैशकंट्रोल मान सेट को अनदेखा किया जा रहा है।प्रतिक्रिया ऑब्जेक्ट
मेरी मूल धारणा यह थी कि मैं System.Web.Http.Cors में EnableCorsAttribute का उपयोग कर रहा था, जो इस उपयोग मामले में आवश्यक है। हालांकि, यहां तक कि उस विशेषता के बिना, प्रतिक्रिया कैश-कंट्रोल हेडर अभी भी 'निजी' है।
क्या मैं यहां कुछ गलत कर रहा हूं?
// GET api/<version>/content
// [EnableCors(origins: "*", headers: "*", methods: "*")]
public HttpResponseMessage Get(HttpRequestMessage request)
{
int cacheMaxAgeSeconds;
string cacheMaxAgeString = request.GetQueryString("cache-max-age") ?? request.GetQueryString("cache-max-age-seconds");
string rawUri = request.RequestUri.ToString();
try
{
cacheMaxAgeSeconds = cacheMaxAgeString == null ? Config.ApiCacheControlMaxSeconds : int.Parse(cacheMaxAgeString);
}
catch (Exception ex)
{
cacheMaxAgeSeconds = Config.ApiCacheControlMaxSeconds;
//...
}
try
{
//...
var response = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StringContent("...", Encoding.UTF8, "application/json")
};
response.Headers.CacheControl = new CacheControlHeaderValue
{
Public = true,
MaxAge = TimeSpan.FromSeconds(cacheMaxAgeSeconds)
};
return response;
}
catch (Exception apiEx)
{
//...
}
}
रिस्पांस सेट नीचे
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: application/json; charset=utf-8
Date: Thu, 23 Jul 2015 10:53:17 GMT
Server: Microsoft-IIS/7.5
Set-Cookie: ASP.NET_SessionId=knjh4pncbrhad30kjykvwxyz; path=/; HttpOnly
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Content-Length: 2367
Connection: keep-alive
एक कारण तुम यहाँ https://github.com की तरह कुछ पर अपने स्वयं के रोल करने की कोशिश कर रहे है/filipw/AspNetWebApi-OutputCache? – BMac
हां, मैं वास्तव में कॉलर को कैश अवधि निर्दिष्ट करने में सक्षम होना चाहता हूं। मान क्वेरी स्ट्रिंग और फीड से कैश कंट्रोल हेडर मानों में पढ़ा जाता है। – gb2d
हम्म, अगर किसी को इसका जवाब पता चलेगा तो यह https://twitter.com/filip_woj (उपरोक्त नुजेट पैकेज का निर्माता) ट्विटर पर उनके पास पहुंचने योग्य होगा। – BMac