将带有 COM+ 的 ASP 个站点移动到 IIS 8.5

Moving ASP Site with COM+ to IIS 8.5

有一个较旧的经典 ASP 站点,该站点具有三个 COM+ 进程,该站点访问这些进程以创建 PDF 文件报告。

正在从 IIS 6/Server 2003 迁移到 IIS 8.5/Server 2012 R2。 OS 都是 64 位的。到目前为止一切正常,除了 COM+ 容器不断返回 "there is no default printer specified" 错误。

COM+ 的进程标识都设置为本地用户,我已经为其设置了默认打印机(两者均使用 Bullzip PDF)。它们 运行 也处于与 IIS 不同的进程中。当我在任务管理器中看到 COM+ 时,他们 运行,他们都在那里显示这个用户。 COM+ 是传统的 32 位(用 Delphi 编写)并且已正确注册等

该服务的 IIS 标识在 2003(它工作的地方)和 2012R2 中都设置为本地系统,而在 2012R2 中则没有。

并不是说它应该有所作为,但旧的 2003 VM 在 Amazon EC2 上,而新的 2012R2 VM 在 Azure 上。

我想弄清楚为什么 COM+ 没有为进程标识帐户选择默认打印机集。两台机器之间的所有 COM+ 设置都完全相同,除了帐户已更改名称但都是设置了默认打印机的机器管理员。

我错过了什么?

我找到了问题的答案:

http://support.microsoft.com/en-us/kb/184291

必须使用正确的默认打印机进入计算机帐户,并从 HKCU 导出与端口、驱动程序和所选默认打印机相对应的注册表项。

然后编辑 .REG 文件,将 HKEY_CURRENT_USER 更改为 HKEY_USERS\.DEFAULT -- 然后您双击每个以将新密钥上传到注册表中。这会设置一台机器默认打印机,COM+ 对象将可以使用此信息,并且 voila!问题解决了。

感谢那些帮助我调整思路以从正确的角度看待这个问题的评论者。