c# – Response.Flush()抛出System.Web.HttpException

前端之家收集整理的这篇文章主要介绍了c# – Response.Flush()抛出System.Web.HttpException前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个HttpHandler,我用来处理客户网站上的某些图像.当我将图像流输出到响应对象时,偶尔会调用Flush会抛出错误.这是一个代码
var image = Image.FromStream(memStream);
if (size > -1) image = ImageResize.ResizeImage(image,size,false);
if (height > -1) image = ImageResize.Crop(image,height,ImageResize.AnchorPosition.Center);

context.Response.Clear();
context.Response.ContentType = contentType;
context.Response.BufferOutput = true;

image.Save(context.Response.OutputStream,ImageFormat.Jpeg);

context.Response.Flush();
context.Response.End();

从我读过的内容中,这个异常是由客户端在进程完成之前断开连接而导致的,没有任何冲突.

这是我的错误页面输出

System.Web.HttpException: An error occurred while communicating with the remote host. The error code is 0x80070057.
Generated: Mon,12 Oct 2009 03:18:24 GMT

System.Web.HttpException: An error occurred while communicating with the remote host. The error code is 0x80070057.
   at System.Web.Hosting.ISAPIWorkerRequestInProcForIIS6.FlushCore(Byte[] status,Byte[] header,Int32 keepConnected,Int32 totalBodySize,Int32 numBodyFragments,IntPtr[] bodyFragments,Int32[] bodyFragmentLengths,Int32 doneWithSession,Int32 finalStatus,Boolean& async)
   at System.Web.Hosting.ISAPIWorkerRequest.FlushCachedResponse(Boolean isFinal)
   at System.Web.Hosting.ISAPIWorkerRequest.FlushResponse(Boolean finalFlush)
   at System.Web.HttpResponse.Flush(Boolean finalFlush)
   at System.Web.HttpResponse.Flush()
   at PineBluff.Core.ImageHandler.ProcessRequest(HttpContext context) in c:\TeamCity\buildAgent\work\79b3c57a060ff42d\src\PineBluff.Core\ImageHandler.cs:line 75
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)

context.Response.Flush属于第75行.

在执行flush之前,是否有一种检查方法,而不会将其包装在try / catch块中.

解决方法

虽然我同意 Mitchel – 如果您在其他地方使用此功能,您可以先尝试致电 Response.IsClientConnnected.

Gets a value indicating whether the client is still connected to the server.

原文链接:https://www.f2er.com/csharp/96377.html

猜你在找的C#相关文章