我们有一台承载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
答案 0 :(得分:0)
嗯,经过几个小时的调查,我发现它与32位/ 64位不兼容没有任何关系,但是Intranet区域中有一个安全选项(“初始化和脚本activex控件未标记为安全”) Windows 8用户的Internet Explorer阻止应用程序执行ActiveX组件。
我激活它,现在一切正常。