如何使用具有CacheDuration属性的ASP / ASMX WebMethod来避免缓存错误结果?
假设您有一个WebMethod,它添加了两个数字(因此它有两个数字参数),并且还有一个帐户ID参数。如果说帐户ID是过期帐户,那么这3个参数的答案将是“错误:过期帐户”。如果您的缓存持续时间为10分钟,如果帐户在1分钟内得到修复,并且该方法在10分钟到期时间内再次调用(具有相同的3个参数),是否会返回缓存的错误消息? / p>
如果是错误消息,有没有办法避免缓存结果?
答案 0 :(得分:2)
您可以在webmethod中自行进行缓存,而不是依赖于CacheDuration属性。在这种情况下,您将拥有完全控制权。
如果没有错误,您可以根据输入参数创建唯一的缓存键,并将结果存储在缓存中(特定持续时间)。
因此,如果出现错误,则表示没有缓存,因此您将再次检查帐户是否有效。如果帐户有效,请将结果放入缓存中。