0

我有一个 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 时,它已经向我显示了图像。所以当用户在数据库中更改他的签名时,服务方法仍然返回前一个......我认为这可能是某种问题......有什么想法吗?

4

1 回答 1

1

是的,这是缓存问题,浏览器缓存了handler的结果,当你再次调用handler时,浏览器返回缓存的结果。

为了防止缓存,您需要在将流写入之前在处理程序中设置它context.Response.OutputStream

context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
于 2010-11-05T07:54:25.713 回答