Я столкнулся с проблемой, которую не могу решить в настоящее время. Если вы поделитесь своим мнением, я буду признателен.
Проблема с потоковым файлом.
Например, пользователь приходит из 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, но в настоящее время он находится в коде.
Любая помощь будет отличной, спасибо,