(0x800703E3) Операция io была прервана из-за выхода из потока или запроса приложения - PullRequest
0 голосов
/ 03 июля 2019

Я столкнулся с проблемой, которую не могу решить в настоящее время. Если вы поделитесь своим мнением, я буду признателен.

Проблема с потоковым файлом.

Например, пользователь приходит из URL с параметром queryString, который идентифицирует файл для потоковой передачи.

А затем успешно прочитайте файл из базы данных. После этого я использую приведенные ниже коды для потоковой передачи и записи в вывод ответа

try
{
    do
    {
         read = reader.GetBytes(6, offset, chunk, 0, chunk.Length);
         if (read > 0)
         {
            if (streamParam.Context.Response.IsClientConnected)
            {                                         
                streamParam.Context.Response.OutputStream.Write(chunk, 0, (int)read);

                streamParam.Context.Response.Flush();

                offset += read;
             }
             else read = -1;
         }
     }
     while (read > 0);
}
catch (Exception exc)
{
    streamParam.Context.Response.End();
}

Самое главное, я не могу воспроизвести ошибку в среде отладки. Но когда я публиковал сайт на сервере, в Event Viewer тысячи раз возникали ошибки.

Я поделился журналом событий без трассировки стека в случае предоставления некоторых советов или чего-то в этом роде,

System.Web.HttpUnhandledException Page: file_streamer.aspx?fId=12312 Message: Exception of type 'System.Web.HttpUnhandledException' was thrown. StackTrace:    at System.Web.UI.Page.HandleError(Exception e)
  at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  at System.Web.UI.Page.ProcessRequest()
  at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
  at System.Web.UI.Page.ProcessRequest(HttpContext context)
  at webproj.file_streamer_aspx.ProcessRequest(HttpContext context)
  at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
  at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 
  Source: System.Web InnerException: 
  System.Web.HttpException (0x80004005): An error occurred while communicating with the remote host. The error code is 0x800703E3. ---> System.Runtime.InteropServices.COMException (0x800703E3): The I/O operation has been aborted because of either a thread exit or an application request. (Exception from HRESULT: 0x800703E3)
  at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) An error occurred while communicating with the remote host. The error code is 0x800703E3.    
  at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) DataDll The I/O operation has been aborted because of either a thread exit or an application request. (Exception from HRESULT: 0x800703E3) 

P.S. : Я исследовал это, обновления сервера sp 2 и сброс com-порта. Это не сработало. Также я читал о IsClientConnected, но в настоящее время он находится в коде.

Любая помощь будет отличной, спасибо,

...