无需在实际机器上注册,就可以在 IIS7 上注册 DLL,可以吗?

无需在实际机器上注册,就可以在 IIS7 上注册 DLL,可以吗?

我有一个旧应用程序,正在将其迁移到新的 Web 托管。我拥有对旧 Web 服务器的完全访问权限,因此对于该特定站点,我必须在实际的 Windows 2003 服务器上注册一个 DLL。该 DLL 与 Adob​​e 的 FDF 工具包有关(http://www.adobe.com/devnet/acrobat/fdftoolkit.html)。

我没有完全访问新的网络主机(我现在正在使用 rackspace cloud),它不允许我直接在服务器上注册 DLL。这完全说得通。有人告诉我,我可以将 DLL 放入应用程序根目录中的 bin 文件夹中。我不相信这是可行的。此外,这里有一个链接,描述了您应该如何注册 DLL,http://www.15seconds.com/issue/990902.htm

*编辑:这个人有和我一模一样的问题,但是没有答案 :(http://objectmix.com/adobe-acrobat/215497-asp-net-2-0-fdf-toolkit-dll-registration.html

这是我收到的错误:

Server object error 'ASP 0177 : 800401f3'    
Server.CreateObject Failed    
/pdfinterface/viewPDF.asp, line 26 
800401f3 

这是第 26 行和第 27 行:

Set FdfAcx = Server.CreateObject("FdfApp.FdfApp")
Set myFdf = FdfAcx.FDFCreate

我是不是彻底完蛋了?我认为这个 DLL 不是设计用来由 IIS 加载的。

答案1

只有当 DLL 是 .NET 的托管代码时,它才可以在不将 DLL 注册到服务器上的情况下工作。

您将看到 ASP.NET 的包装器 DLL,但它们也需要在服务器上注册核心 DLL。

此外,由于您使用的是 Classic ASP,即使完全托管,将某些内容放入 /bin 文件夹也无济于事。

因此,不幸的是,除了允许注册 DLL 的另一个托管平台之外,您唯一的选择就是转移到完全管理组件并从 ASP.NET 调用它。

答案2

我认为失败的原因是 COM dll 未注册,它必须在某个地方注册,要么在机器上(在 HKEY_CLASSES_ROOT 中),要么在每个用户的注册中(在 HKEY_CURRENT_USER\Software\Classes 中)。后者可能是一个可行的解决方案。我发现允许每个用户注册 DLL 的工具。您可能能够使用它来使用 IIS 进程运行的凭据来注册 DLL。

相关内容