1

我们有一个 VB.net 应用程序正在从一个盒子移动到另一个盒子。它在旧盒子上运行良好。新盒子的配置与旧盒子相同,但在较新的硬件上。当我在新服务器上运行应用程序时,它抱怨找不到我们使用的 adobe 工具包。

错误信息是。

Compiler Error Message: BC30002: Type 'FDFACXLib.FdfApp' is not defined.
on the line:
Dim FdfAcx As FDFACXLib.FdfApp

FDFACX.DLL 和其他相关的 dll 位于 c:\inetpub\wwwroot\bin 目录中。我检查了文件的权限,并且 ASP 用户拥有对它们的完全访问权限。我还用 regsvr32 注册了它们。

Visual Studio 安装在新盒子上,如果我使用内置开发服务器运行项目,一切运行良好(设置了对 FDFACX.dll 的引用)。

看来 IIS 无法引用 dll。我不知道此时还能尝试什么。有什么建议么?

4

2 回答 2

1

64 位进程无法加载 32 位库。也许 .NET 应用程序正在 64 位模式下运行?如果应用程序在新的 x64 机器上运行,那么它很可能在默认情况下运行在 IIS 中的 64 位应用程序池中。应用程序池是运行一个或多个 IIS 应用程序的工作进程。64 位应用程序池是 64 位进程,无法加载 32 位库。因此,在 IIS 中,您需要创建一个新的 32 位应用程序池,然后更新运行 .NET 应用程序的 IIS 应用程序以使用新的 32 位应用程序池而不是默认应用程序池。

打开 IIS 7 管理员。导航到您的网站。在右侧栏中,单击基本设置,您将在其中找到该网站的应用程序池的名称(默认为 DefaultAppPool)。然后在导航中转到应用程序池,选择正确的应用程序池,然后单击右侧的高级设置。如果启用 32 位应用程序设置为 false,则它是 64 位的。对于 IIS 应用程序正在使用的应用程序池,必须将启用 32 位应用程序设置为 true。

于 2010-10-01T21:07:00.437 回答
0

只是为了笑,将带有dll的目录添加到您的路径中?

于 2010-10-27T14:26:09.553 回答