ASP经典 - 是否有可能强制在32位运行客户端VBScript?

时间:2015-07-31 15:09:04

标签: iis vbscript asp-classic

我们有一台承载ASP经典应用的Windows 2003服务器 32位。此应用程序调用{​​{1}}发送电子邮件。此代码位于.asp页面中的客户端CreateObject("CDO.Message")标记中。

当我在32位操作系统上访问页面时,一切正常。问题是它在64位计算机上执行时不起作用(ActiveX无法创建对象...)。我的猜测是因为它调用64位VBScript,因为服务器是32位,它无法工作。

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

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

为什么<script>是“客户端”(我甚至不确定,但我可以在浏览器中查看asp页面源代码中的代码)是因为电子邮件通过单击按钮发送,该按钮的事件处理代码位于CreateObject标记中。为什么它像我不知道的那样。

以下是位于asp页面的<script>块中的脚本标记示例:

<HEAD>

它在<SCRIPT ID=clientEventHandlersVBS language=VBScript> <!-- Sub btnEnvoyer_onclick dim objMail set objmail = CreateObject("CDO.Message") End Sub --> </SCRIPT> 崩溃,并在那里停止并显示错误:

  

ActiceX无法创建对象

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

调用该子按钮的按钮:

CreateObject

1 个答案:

答案 0 :(得分:0)

嗯,经过几个小时的调查,我发现它与32位/ 64位不兼容没有任何关系,但是Intranet区域中有一个安全选项(“初始化和脚本activex控件未标记为安全”) Windows 8用户的Internet Explorer阻止应用程序执行ActiveX组件。

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