我尝试缓存网络服务的 webmethod 。通过遵循文档,我尝试添加CacheDuration
属性,并进行了测试:
[WebMethod(CacheDuration = 180)]
public int TestCacheDuration()
{
return new Random().Next();
}
对于webmethod的每次调用,我都有不同的响应,因此不会被缓存。
这是正常的吗?
感谢您的回答!
答案 0 :(得分:3)
MSDN论坛中明确解释了这一点:
有两个问题会影响ASP.NET 2.0中的输出缓存 Web服务应用程序。
在ASP.NET 2.0中,测试页的HTTP方法已从GET更改 发布。但是,POST通常不会被缓存。如果你改变了 ASP.NET 2.0 Web服务应用程序中的测试页面使用GET, 缓存工作正常。
此外,HTTP表示用户代理(浏览器或呼叫) 应用程序)应该能够通过设置来覆盖服务器缓存 “缓存控制”到“无缓存”。因此,ASP.NET应用程序会忽略 当他们找到“无缓存”标题时缓存结果。
还有:
使用web.config中的webSerices元素下的protocols元素:
http://msdn2.microsoft.com/en-us/library/ms228319(VS.85).aspx
来源:http://social.msdn.microsoft.com/forums/en-US/asmxandxml/thread/3765f1e2-0ff5-4840-afa2-e85b3d909cd1