WebMethod缓存未进入处理程序的图像

时间:2010-11-05 07:48:50

标签: c# .net vb.net caching webmethod

我有一个WebMethod,它将HTML作为参数重现:

Public Function ConvertHtmlToPdfListAnswer(ByVal dokument As Dokument) As Byte()

在这个HTML中,我的例如用户签名的路径如下所示:

Handlers/SzablonyListImgHandler.ashx?usid=2006

我的处理程序像这样开始:

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest

它从上下文中获取参数,为数据库创建查询并返回流输出,如下所示:

If Not String.IsNullOrEmpty(context.Request.QueryString("usid")) Then
...
...
streamOut.WriteTo(context.Response.OutputStream)

我的问题是它一次触发......我的意思是当我再次调用服务时它不会进入处理程序但是当我在调试器视图中检查HTML时它已经显示了我的图像。因此,当用户在数据库中更改其签名时,服务方法仍会返回前一个...我认为这可能是某种问题...任何想法?

1 个答案:

答案 0 :(得分:1)

是的,这是缓存问题,浏览器缓存处理程序的结果,当您再次调用处理程序时,浏览器返回缓存的结果。

要防止缓存,您需要在将流写入context.Response.OutputStream

之前在处理程序中设置此项
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);