我们有一个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。我不知道还有什么可以尝试。有什么建议吗?
答案 0 :(得分: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。
答案 1 :(得分:0)
只是为了笑,将带有dll的目录添加到路径中?