0

我在 ASP.Net 中有一个网站,它使用名为 ABCPdf 的第 3 方应用程序生成 PDF。ABCPdf 由两个 dll 组成:ABCpdf.dll 和 ABCpdfCE7.dll。ABCpdf.dll 是非托管 ABCpdfCE7.dll 的 .NET 包装器。

一旦生成pdf。ABCpdfCE7.dll 被 IIS 锁定(即无法重命名或删除它),除非我回收应用程序池或重新启动 IIS。这在更新我的网站时会导致问题,因为我们无法覆盖 ABCpdfCE7.dll。

无论如何要释放在 .Net 中锁定 ABCpdfCE7.dll 的资源吗?每次更新时重新启动 IIS 或回收应用程序池都不是解决方案,因为我有多个网站在上面运行。

我每次都从 PDF 库中处理对象

Using theDoc As New Doc

    // Generate the pdf

    theDoc.Clear()
End Using
4

1 回答 1

2

ABCpdfCE7.dll 多久更改一次?我想不会太频繁,所以你为什么每次更新都推送它,把它排除在外。

另外,还有一些观察:

回收应用程序池会保留会话,因此它不应该对您的用户产生任何影响,除了性能之外,如果您正在缓存大量昂贵的资源,并且有人会得到第一次点击延迟。

ABCPdf,取决于您使用它的方式,会生成一个 Internet Explorer 实例以将 HTML 呈现为 PDF。您可以检查任务管理器以查看 IE 是否在后台运行,如果是,则将其杀死可以解决您的问题,尽管我不知道您如何避免杀死某人的 PDF 作业。

于 2011-03-22T14:23:17.183 回答