Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中显示字节[]中的PDF#_C#_Visual Studio 2010_Pdf_Byte - Fatal编程技术网

C# 在C中显示字节[]中的PDF#

C# 在C中显示字节[]中的PDF#,c#,visual-studio-2010,pdf,byte,C#,Visual Studio 2010,Pdf,Byte,我正试图根据数据库中保存的数据显示PDF文件。它是byte[]格式。下面的代码在新的IE选项卡中成功地显示了PDF文件,但是,我的try-catch语句中也出现了异常错误 我的代码示例: try { byte[] byteOutput = myObject.ContractBytes; Response.ClearHeaders(); HttpContext.Current.Response.AddHeader("Content-Disposition", "in

我正试图根据数据库中保存的数据显示PDF文件。它是
byte[]
格式。下面的代码在新的IE选项卡中成功地显示了PDF文件,但是,我的try-catch语句中也出现了异常错误

我的代码示例:

try {

     byte[] byteOutput = myObject.ContractBytes;
     Response.ClearHeaders();
     HttpContext.Current.Response.AddHeader("Content-Disposition", "inline;filename=file.pdf");
     HttpContext.Current.Response.ContentType = "application/pdf";
     Response.BinaryWrite(byteOutput);
     Response.Flush();
     Response.End();
}
catch (Exception ex)
{
     RecordError(ex.Message, ex);
}
Thread was being aborted.
at System.Threading.Thread.AbortInternal() 
at System.Threading.Thread.Abort(Object stateInfo)  
at System.Web.HttpResponse.AbortCurrentThread() 
at System.Web.HttpResponse.End()
at GetForm.FromDatabase() in c:\\SRC\\GetPDF.aspx.cs:line 340
at GetForm.Page_Load(Object sender, EventArgs e) in c:\\SRC\\MyPage.aspx.cs:line 106
我的异常错误:

try {

     byte[] byteOutput = myObject.ContractBytes;
     Response.ClearHeaders();
     HttpContext.Current.Response.AddHeader("Content-Disposition", "inline;filename=file.pdf");
     HttpContext.Current.Response.ContentType = "application/pdf";
     Response.BinaryWrite(byteOutput);
     Response.Flush();
     Response.End();
}
catch (Exception ex)
{
     RecordError(ex.Message, ex);
}
Thread was being aborted.
at System.Threading.Thread.AbortInternal() 
at System.Threading.Thread.Abort(Object stateInfo)  
at System.Web.HttpResponse.AbortCurrentThread() 
at System.Web.HttpResponse.End()
at GetForm.FromDatabase() in c:\\SRC\\GetPDF.aspx.cs:line 340
at GetForm.Page_Load(Object sender, EventArgs e) in c:\\SRC\\MyPage.aspx.cs:line 106
任何帮助都将不胜感激


感谢您的支持。

我认为以下语句产生了该错误

Response.End();

你为什么需要它?您是否在没有此调用的情况下尝试了该代码?

我认为下面的语句产生了该错误

Response.End();
你为什么需要它?你没有打这个电话就试过密码了吗?

有吗

此方法仅用于与ASP兼容,即与 ASP.NET之前的基于COM的Web编程技术。如果你想跳到 事件并向客户端发送响应,通常最好调用 相反

为了模仿ASP中End方法的行为,此方法尝试提出 [ThreadAbortException]异常。如果此尝试成功,调用线程将被删除 中止,这对站点的性能有害。在这种情况下,调用后没有代码 方法执行到底

如果End方法无法引发[ThreadAbortException],它将刷新响应 将字节发送到客户端。它是同步进行的,这也会对站点的性能造成不利影响 表演

在这两种情况下(无论是否成功引发[ThreadAbortException]异常) 响应管道跳到事件前面

该方法不会提高效率 异常,可能会执行调用该方法后的代码。如果 您的意图是避免执行后续代码,并且如果性能惩罚结束 是可接受的,您可以调用End而不是

有吗

此方法仅用于与ASP兼容,即与 ASP.NET之前的基于COM的Web编程技术。如果你想跳到 事件并向客户端发送响应,通常最好调用 相反

为了模仿ASP中End方法的行为,此方法尝试提出 [ThreadAbortException]异常。如果此尝试成功,调用线程将被删除 中止,这对站点的性能有害。在这种情况下,调用后没有代码 方法执行到底

如果End方法无法引发[ThreadAbortException],它将刷新响应 将字节发送到客户端。它是同步进行的,这也会对站点的性能造成不利影响 表演

在这两种情况下(无论是否成功引发[ThreadAbortException]异常) 响应管道跳到事件前面

该方法不会提高效率 异常,可能会执行调用该方法后的代码。如果 您的意图是避免执行后续代码,并且如果性能惩罚结束 是可接受的,您可以调用End而不是


尝试调用
this.Context.ApplicationInstance.CompleteRequest()
而不是
Response.End()
-这将结束响应,并且不会引发
ThreadAbortException
。尝试调用
this.Context.ApplicationInstance.CompleteRequest()
而不是
Response.End()
-这将结束响应,并且不会引发
线程异常异常
。此代码是在我接管该职位之前编写的。谢谢你提供的答案。这段代码是在我接任该职位之前编写的。谢谢你提供的答案。