【问题标题】:Classic ASP invokes dll - works in 32 bit OS but fails in 64 bit OS with IIS 7.5经典 ASP 调用 dll - 在 32 位操作系统中工作,但在 IIS 7.5 的 64 位操作系统中失败
【发布时间】:2026-01-20 23:10:02
【问题描述】:

我正在开发一个经典的 ASP 应用程序。它使用 dll 将文件上传和下载到 Web 服务器。

FunctionUpload.dll 是使用 regsvr32.exe 命令注册的。它在 Windows 2003 服务器、32 位操作系统和 IIS 6 中运行良好。

现在服务器升级到带有 IIS 7.5 的 Windows 2008 64 位操作系统。我在 64 位操作系统中使用 regsvr32.exe 命令注册了 dll。 (使用管理员登录在 C:\Windows\SysWOW64 文件夹中的 regsvr32.exe)

当 ASP 代码尝试创建该 dll 的对象时,它失败了。

Set download = Server.CreateObject("FunctionUpload.File")

请告诉我需要执行哪些步骤才能在装有 Windows 2008 64 位操作系统和 IIS 7.5 的服务器上从 ASP 代码访问 dll?

如何检查 dll 是否在 64 位操作系统上正确注册?

我应该对 IIS 7.5 设置进行任何更改以调用该 dll 吗?

谢谢 阿肖克

【问题讨论】:

    标签: asp-classic regsvr32


    【解决方案1】:

    您必须在应用程序池下的 iis 中启用 32 位应用程序

    【讨论】:

    • 您好,感谢您的回复。我在使用的应用程序池中启用了 32 位应用程序。当我调用 dll 时,ASP 代码失败并在 IE 中显示一条消息,提示“Internet Explorer 无法显示网页” Set download = Server.CreateObject("FunctionUpload.File") ASP 代码失败并显示 IE 无法显示网页后这条线。 download.ToName filename 如何获取调用 dll 时发生的确切错误消息?
    • 在您的 iis 下的经典 asp 设置中,在调试部分启用“将错误发送到浏览器”。此外,您必须将 IE 配置为显示长 http 错误消息。 (Properties->Extended->去掉Show short error Messages的勾选)
    • 您应该查看您的 IIS 日志。在我的计算机上,它们位于以下目录中:C:\inetpub\logs\LogFiles。选择最近更新的以 W3SVC 为前缀的文件夹。然后打开今天的日志。您应该会看到有关该错误的更多详细信息。