delphi - 如果调用 FastReport.PrepareReport,则 ISAPI Web 应用程序挂起

标签 delphi delphi-xe3 isapi fastreport

begin
  try
    Raport.PrepareReport(True);
  except on E:Exception do
    raise ;
  end;
//  if Raport.Engine.Run then
  Raport.Export(frxPDF);
end;

当作为 Isapi dll 运行时,Web 应用程序会挂起 o Raport.PrepareReport(true),当作为 .exe 应用程序与本地应用程序服务器一起运行时,它会运行!...
该文件夹具有 IIS_IUSRS 总控制文件的权限。
为什么它会被挂起?

最佳答案

我经历过如果 ISAPI dll 中存在未处理的异常,应用程序就会崩溃。您正在处理一般异常 E: Exception,但重新引发它以传递给更高级别的处理程序。因此,如果没有上层处理程序,它会转到 IIS,这会使 IIS 使应用程序崩溃,因为从 IIS 的角度来看,存在未处理的异常,并且它不知道如何处理它。

您不应该重新引发 ISAPI 中发生的异常;如果你是最高的处理者,就正确处理它。例如,尝试写回 E.message,以进一步调查以了解发生了什么以及最初导致异常的原因。

关于delphi - 如果调用 FastReport.PrepareReport,则 ISAPI Web 应用程序挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27607416/

相关文章:

delphi - 列表框中的选项卡和彩色线条

Delphi 服务监听 TCP 或 UDP

delphi - 编译完包后在哪里可以找到 bpl 文件?

azure - 如何在 Windows Azure 上托管 isapi 扩展

sql-server - DBX将SQL错误截断为256个字符

c# - 您将如何从现有的面向对象的 API 创建控制台应用程序?

delphi - 我怎样才能让我的delphi应用程序使用FTPS而不是FTP(indy)

delphi - 如何将 Delphi 调试器附加到 64 位 IIS 7.5?

delphi - 在 II7 中, "Application"、 "Module"和 "Handler"之间有什么区别?

delphi - 如何用Delphi计算当前日期的日出和日落时间