.net - 如何防止 Web 服务结果缓存在 ASP.NET Web 服务中?

标签 .net asp.net web-services

在我的 ASP.NET 应用程序中,我注意到任何 Web 服务调用的结果都被缓存。我不想缓存任何结果,如何阻止浏览器缓存结果?

更新:

这是通过调用附加“/js”的 Web 服务 URL 生成的代理代码,例如/mywebservice.asmx/js

var MyWebService=function() {
MyWebService.initializeBase(this);
this._timeout = 0;
this._userContext = null;
this._succeeded = null;
this._failed = null;
}
MyWebService.prototype={
SomeWebMethod:function(itemID,succeededCallback, failedCallback, userContext) {
return this._invoke(MyWebService.get_path(), 'SomeWebMethod',false,
{itemID:itemID},succeededCallback,failedCallback,userContext); }}
MyWebService.registerClass('MyWebService',Sys.Net.WebServiceProxy);
MyWebService._staticInstance = new MyWebService();
MyWebService.set_path = function(value) { MyWebService._staticInstance._path = value; }
MyWebService.get_path = function() { return MyWebService._staticInstance._path; }
MyWebService.set_timeout = function(value) { MyWebService._staticInstance._timeout = value; }
MyWebService.get_timeout = function() { return MyWebService._staticInstance._timeout; }
MyWebService.set_defaultUserContext = function(value) { MyWebService._staticInstance._userContext = value; }
MyWebService.get_defaultUserContext = function() { return MyWebService._staticInstance._userContext; }
MyWebService.set_defaultSucceededCallback = function(value) { MyWebService._staticInstance._succeeded = value; }
MyWebService.get_defaultSucceededCallback = function() { return MyWebService._staticInstance._succeeded; }
MyWebService.set_defaultFailedCallback = function(value) { MyWebService._staticInstance._failed = value; }
MyWebService.get_defaultFailedCallback = function() { return MyWebService._staticInstance._failed; }
MyWebService.set_path("/MyWebService.asmx");
MyWebService.SomeWebMethod= function(itemID,onSuccess,onFailed,userContext)
{MyWebService._staticInstance.SomeWebMethod(itemID,onSuccess,onFailed,userContext); }

我使用以下方法调用服务:
MyWebService.SomeWebMethod(
itemID,
function(sender, e)
 {
    // do something
},
function(sender, e)
{
   // handle failure
});

我对其他页面使用建议的技术(将参数附加到具有一些随机值的 URL)以防止它们被缓存,但我很惊讶我需要将此技术用于 Web 服务调用,因为它们是 POST 调用默认情况下在 ASP.NET 2.0 中,不应首先缓存。

最佳答案

如果您可以控制服务器,请查看 here对于 IIS7

在旧版本的 IIS 添加一个

Cache-Control: no-cache 

到 ASMX/SVC 文件(或整个目录)的标题

关于.net - 如何防止 Web 服务结果缓存在 ASP.NET Web 服务中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3551144/

相关文章:

.net - 加载 .NET WinForm 应用程序 user.config 文件时如何捕获异常?

c# - 从一个 Entity Framework ExecuteStoreQuery 请求读取多个表。

c# - 图像回调 c++ 到 c#

c# - DropDownList 不接受我尝试分配的 SelectedIndex

php - 构建 Reducisaurus URL

.net - 自终止或卸载 Windows 服务

asp.net - 我如何使用 jQuery 插入一个 <DIV> 包裹在可变数量的子元素周围?

插入 DOM 的表单的 jQuery 验证

java - Eclipse Web 服务测试客户端和异常 : (401) Unauthorized error

java - 在 Java 中使用 SOAP Web 服务(具有安全性)