ASP 经典 - 是否可以在 32 位中强制使用 运行 客户端 VBScript?

ASP classic - Is it possible to force running clientside VBScript in 32bit?

我们有一个 Windows 2003 服务器 32 位,它托管一个 ASP 经典应用程序。此应用程序调用 CreateObject("CDO.Message") 发送电子邮件。此代码位于 .asp 页面的客户端 <script> 标记中。

当我在 32 位 OS 上访问页面时一切正常。问题是它在 64 位机器上执行时不起作用(ActiveX 无法创建对象...)。我的猜测是因为它调用了 64 位的 VBScript 东西,而且因为服务器是 32 位的所以它不能工作。

是否可以在 32 位机器和 64 位机器上都在 <script> 标签 运行 中制作代码?如果可能的话,我宁愿不必重新编码应用程序来将电子邮件发送代码放在服务器端。


编辑 - 关于它正在做什么的更多信息:该应用程序非常古老并且运行良好,直到我们最近开始将用户从 xp 32 位迁移到 win8 64 位。它仅针对 IE。

为什么 CreateObject 是 "client side"(我什至不确定,但我可以在 asp 页面的源代码中查看代码浏览器)是因为电子邮件是在单击按钮时发送的,并且该按钮的事件处理代码在 <script> 标记中。不知道为什么会这样

这是位于 asp 页面的 <HEAD> 块中的脚本标记示例:

<SCRIPT ID=clientEventHandlersVBS language=VBScript>
<!--
Sub btnEnvoyer_onclick
    dim objMail

    set objmail = CreateObject("CDO.Message")
End Sub
-->
</SCRIPT>

它在 CreateObject 崩溃并停在那里并出现错误:

ActiceX can't create object

如果我从 32 位 OS 访问它(例如 win7 32 位,它可以工作。这就是为什么我认为 32 位服务器和 64 位客户端之间可能存在某种兼容性问题)。

调用该子项的按钮:

<INPUT type="button" value="Envoyer" id=btnEnvoyer name=btnEnvoyer class=boutons>

嗯,经过几个小时的调查,我发现它与 32 位/64 位不兼容没有任何关系,但是在 Internet Explorer 中有一个 Intranet 区域 ("Initialize and script activex controls not marked as safe") 的安全选项Windows 8 个用户阻止应用程序执行 ActiveX 组件。

我激活了它,现在一切正常。