CreateObject 函数或 ActiveXObject 函数可能在 InfoPath 2003 中生成脚本错误

文章翻译 文章翻译
文章编号: 832512 - 查看本文应用于的产品
展开全部 | 关闭全部

症状

您可以使用 Microsoft VBScript CreateObject 函数或 Microsoft JScript ActiveXObject 函数创建一个 ActiveX 组件实例。如果在函数调用的脚本模块中为 Microsoft Office InfoPath 2003 表单创建这个 ActiveX 组件实例,则可能收到以下错误消息之一。
Automation 服务器不能创建对象
ActiveX 部件不能创建对象

原因

InfoPath 2003 表单始终在 Internet 安全区域的上下文中运行。Internet 安全区域定义表单中的脚本可以执行的操作和表单中的脚本不能执行的操作。通常,发生此错误的原因在于,当 ActiveX 组件没有标记可安全执行不受信任脚本可安全执行不受信任的初始化时,表单所运行的 Internet 安全区域不允许创建 ActiveX 组件。这意味着该控件的作者没有证明,当该组件带有恶意脚本或恶意数据时,它不能对系统造成损害。

有关安全区域如何影响表单对计算机上的资源所具有的访问级别的更多信息,请单击“帮助”菜单上的“Microsoft Office InfoPath 2003 帮助”,在“协助”窗格的“搜索”框中键入关于安全区域,然后单击“开始搜索”以查看相关主题。
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
216434 INFO:Internet Explorer 如何确定 ActiveX 控件是否安全

解决方案

要变通解决在 InfoPath 2003 表单中存在的这种问题,请使用以下两种方法之一:
  • 使该表单成为完全受信任的基于 URN 的表单。
  • 将主持 InfoPath 2003 表单的服务器的 URL 添加到 Microsoft Internet Explorer 的受信任站点列表中。
  • 对表单模板进行数字签名。(适用于 InfoPath 2003 SP1)

使该表单成为完全可信的基于 URN 的表单

必须通过使用自定义安装脚本或使用 Microsoft System Installer 软件包,将完全可信的基于 URN 的表单安装在您的计算机上。这样,即使 ActiveX 组件未标记可安全执行不受信任脚本可安全执行不受信任的初始化,也可以创建 ActiveX 组件。

您可以将标准表单手动转换成基于 URN 的表单。但是,手动转换是一项非常繁重的工作,而且容易出错。此外,您也可以通过使用 RegForm.exe 工具将标准表单转换成基于 URN 的表单。该工具是包括在 InfoPath 2003 软件开发工具包 (SDK) 中的命令行表单注册工具。RegForm.exe 工具可对表单定义文件和 XML 模板文件进行所需的更改。然后,Regform.exe 工具将这些文件重新打包成一个 .xsn 文件,接着创建一个用于安装修改后的表单模板的自定义安装程序。

有关如何能够下载 InfoPath 2003 SDK 的其他信息,请访问下面的 Microsoft 网站:
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=351f0616-93aa-4fe8-9238-d702f1bfbab4
InfoPath 2003 SDK 的默认安装位置是 C:\Program Files\Microsoft Office 2003 Developer Resources\Microsoft Office InfoPath 2003 SDK\Tools。

要查看命令行选项,请在“命令”窗口中键入下面的命令行:
regform /?
请注意命令行中 /U 开关和 /T 开关的用法。/U 开关指定要用于表单模板的 URN。/T 开关指定表单模板是完全可信的。这会将表单定义 (.xsf) 文件中的 requireFullTrust 属性设置为“是”。

下面的命令行在要转换的模板所在的文件夹中生成一个 .js 文件和一个 .bak 文件:
regform /U urn:MyForm:MyCompany /T Yes C:\MyForms\MyTrustedForm.xsn
.bak 文件是执行基于 URN 的更改之前原始表单模板文件的副本。.js 文件是可用于安装基于 URN 表单的脚本文件。

要运行 .js 脚本,请在命令行中键入以下代码,然后按 Enter:
Cscript <full path of your .js file>
有关基于 URN 的表单或有关 RegForm.exe 工具的其他信息,请参见 InfoPath 2003 SDK 帮助文档中的“使用表单注册工具”主题。

将主持 InfoPath 2003 表单的服务器的 URL 添加到 Microsoft Internet Explorer 的受信任的站点列表中

如果将主持 InfoPath 2003 表单的服务器的 URL 添加为受信任的站点,则当您运行代码时将收到下面的消息:
在此页上的 ActiveX 控件和本页上的其他部分的交互可能不安全。您想允许这种交互吗?
如果单击“是”,则该代码将运行。如果单击“否”,则会收到“症状”一节所述的错误消息,并且该代码不会运行。

要将站点添加为受信任的站点,请按照下列步骤操作:
  1. 启动 Internet Explorer。
  2. 在“工具”菜单上,单击“Internet 选项”。
  3. 在“Internet 选项”对话框中,单击“安全”选项卡。
  4. 在“安全”选项卡上,单击“受信任的站点”。
  5. 单击“站点”。
  6. 将主持 InfoPath 2003 表单的服务器的 URL 添加到“将该网站添加到区域中”文本框中。

    例如,如果主持 InfoPath 2003 表单的服务器名称为 MyServer,则必须添加到该文本框的 URL 为 http://MyServer
  7. 单击“添加”。

    这样便将新输入的网站添加到“网站”列表框中。
  8. 单击“确定”两次。

    这样将提交更改,然后关闭对话框。

对表单模板进行数字签名

这适用于 InfoPath 2003 Service Pack 1。如果使用受信任的证书对表单模板进行数字签名,则可以将表单模板的安全级别设置为“完全信任”。“完全信任”意味着表单可以访问用户计算机或其他域中的文件和设置。此外,您也可以部署和更新该表单模板,方法是通过使用电子邮件程序将表单模板和表单模板的更新版本发送给其他人。

要使用受信任的证书对表单进行数字签名,请按照下列步骤操作:
  1. 在“设计”模式中,单击“工具”菜单上的“表单选项”。
  2. 在“表单选项”对话框中,单击“安全性”选项卡。
  3. 在“表单签名”下,单击以选中“签名此表单”复选框。
  4. 单击“选择证书”。
  5. 在“选择证书”对话框中,单击对表单进行数字签名要使用的证书。
注意:如果某证书在用户计算机上不受信任,则 Microsoft Office InfoPath 2003 将显示一条安全消息,并且要求用户在打开表单之前对证书颁发者启用信任。

参考

有关如何获取 Microsoft Office 的最新的 Service Pack 的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
870924 如何获取最新的 Office 2003 Service Pack

属性

文章编号: 832512 - 最后修改: 2006年1月11日 - 修订: 2.0
这篇文章中的信息适用于:
  • Microsoft Office InfoPath 2003
  • Microsoft Office InfoPath 2003, Service Pack 1 (SP1)
关键字:?
kbdownload kbnofix kbautomation kbprb KB832512
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com