我们有一个ashx图像处理程序在过去几年中表现相当不错,但我们最近注意到一些奇怪的间歇性行为IE8 and IE9。我们有一个图库页面,作为图像 src 属性的一部分多次调用图像处理程序,该页面在弹出窗口中打开。
该页面工作正常,但当窗口快速连续打开和关闭时(在页面上的所有图像完成加载之前),它会导致浏览器挂起并随后必须重新启动。
以下是我们的图像处理程序代码的示例,我怀疑当窗口关闭并且浏览器和服务器之间的连接仍在运行并导致其崩溃时,对图像的请求并未“结束”。
查看日志,有多次尝试通过处理程序获取相同的图像,因此浏览器看起来像是retrying因为它认为它未能完成请求。
我是否可以对处理程序(或客户端代码)进行任何更改,以确保浏览器在窗口关闭后不会继续请求图像,或者这是 IE 固有的复杂性? Safari、Firefox 和 Chrome 可以很好地处理此类行为。
另请注意:显示图像的页面在网格周围有一个更新面板 - 但我不认为这是相关的。
Response.Clear();
Response.ContentType = "image/jpeg";
System.Drawing.Image returnImage = System.Drawing.Image.FromFile(completeImageFilePath);
using (MemoryStream stream = new MemoryStream())
{
returnImage.Save(stream, ImageFormat.Jpeg);
stream.WriteTo(Response.OutputStream);
}
returnImage.Dispose();
if (Response.IsClientConnected)
{
Response.Flush();
}
Response.End();
你有没有尝试过包装一个usingreturnImage
“确保” .dispose() 被调用?
Response.Clear();
Response.ContentType = "image/jpeg";
using (System.Drawing.Image returnImage = System.Drawing.Image.FromFile(completeImageFilePath))
{
using (MemoryStream stream = new MemoryStream())
{
returnImage.Save(stream, ImageFormat.Jpeg);
stream.WriteTo(Response.OutputStream);
}
}
if (Response.IsClientConnected)
{
Response.Flush();
}
Response.End();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)