当您通过使用 InfoPath 2010 表单连接到 Web 服务时沙盒中处理的代码包含的、 不返回的数据或您收到一条错误消息

症状
您必须有一个数据连接到 Web 服务的一个 Microsoft InfoPath 2010 表单模板。连接 Web 服务时,会遇到下列问题之一: 由 Web 服...

您必须有一个数据连接到 Web 服务的一个 Microsoft InfoPath 2010 表单模板。连接 Web 服务时,会遇到下列问题之一:
  • 由 Web 服务返回的数据不正确。
  • 您会收到以下错误消息:
    访问的数据源时,出现了一个错误。
    项已添加到服务器的 Windows 事件日志。
    登录 ID:5566
当满足下列条件都为真时,会出现这些问题:
  • Web 服务使用的用户在填写表单的身份。
  • InfoPath 2010 表单模板包含沙盒中处理的代码并将发布到 Microsoft SharePoint 服务器 2010年网站。

    注意InfoPath 表单代码通过使用 SharePoint 基础沙盒代码服务,如果 Administrator-approved 表单模板 (高级) 选项未启用发布窗体时运行。

原因
包含沙盒中处理代码的 InfoPath 2010 表单模板是通过使用 SharePoint 基础沙盒代码服务,它使用 SPUCWorkerProcess 过程,...

包含沙盒中处理代码的 InfoPath 2010 表单模板是通过使用 SharePoint 基础沙盒代码服务,它使用 SPUCWorkerProcess 过程,而不是 W3WP 过程实现的。当窗体调用 Web 服务时,InfoPath 表单服务委托到 SPUCWorkerProcess 进程请求。此过程不能使用的用户填写表单的身份。而是,该过程使用的运行 SharePoint 基础沙盒代码服务的帐户的标识。在帐户由场管理员指定。因此,Web 进行身份验证基于 SPUCWorkerProcess 进程的标识。但是,如果由场管理员指定的帐户不具有对 Web 服务的访问权限,将出现错误消息。

注意InfoPath 表单服务会尝试时在 f oPath 窗体服务确定没有沙盒中处理的代码具有运行给定请求 W3WP 过程中执行的请求。但是,如果存在可能会导致沙盒代码来执行的级联操作请求被委派 SharePoint 基础沙盒代码服务,并在 SPUCWorkerProcess 过程。

解决方案
若要解决此问题,使用下列方法之一。方法 1将在沙盒中处理窗体作为一个经管理员核准的表单重新部署。若要这样做,请按照下列步骤操作: 在 InfoPath 设计器...

若要解决此问题,使用下列方法之一。

方法 1

将在沙盒中处理窗体作为一个经管理员核准的表单重新部署。若要这样做,请按照下列步骤操作:
  1. 在 InfoPath 设计器 2010 年的设计模式下打开 InfoPath 2010 窗体。
  2. 文件 菜单上单击 发布
  3. 单击 SharePoint 服务器
  4. 按照发布向导中完成发布。请确保您选择 Administrator-approved 表单模板 (高级) 选项。
  5. 打开 InfoPath 表单启用了服务的 SharePoint 服务器 2010年服务器上的 SharePoint 2010 中央管理器。
  6. 管理中心,下单击 常规应用程序设置
  7. InfoPath 表单服务,下单击 上载表单模板
  8. 单击 浏览,查找该 InfoPath 2010 表单模板并再单击 打开
  9. 单击 上载,然后单击 确定
  10. 单击 一般应用程序设置,在 InfoPath 表单服务 下,单击 管理表单模板
  11. 单击上载的模板的名称,然后单击 激活到网站集
  12. 单击 网站集 下拉列表,然后单击 更改网站集
  13. 选择要用来激活表单模板,在网站集的 URL,然后单击 确定 两次。
  14. 打开您在其中激活该表单模板网站集。
  15. 在网站上创建一个新的窗体库。
  16. 选项卡上单击 库设置
  17. 常规设置 部分下单击 高级的设置
  18. 设置为 允许管理内容类型,然后单击 确定
  19. 表单库设置 页中单击 从现有网站内容类型添加
  20. 单击您激活该表单模板、 单击 添加,然后单击 确定
  21. 单击 窗体、 单击 删除此内容类型,然后单击 确定
  22. 打开窗体库。在 文档 选项卡上单击 新建文档,,然后单击 $ 表单模板名称。
方法 2

使用 SharePoint 服务器 2010 年安全存储服务,来存储数据连接的备用凭据。

安全的存储服务身份验证的工作原理是加密的数据库中存储用户名和密码。 当 InfoPath 表单服务请求安全存储服务代表的用户的身份验证时,安全存储服务将执行单个的身份验证或组身份验证。单个的身份验证的安全存储服务验证所请求的用户在安全的存储服务数据库中有一个条目。组验证为安全存储服务验证用户是一组项的成员。当在验证用户安全存储服务就会返回相应的凭据。然后,InfoPath 表单服务将使用这些凭据,来模拟的用户。因此,Web 服务可以看到用户在安全存储服务数据库中指定,即使指定的用户不是实际的用户。

注意以下步骤假定在该表单模板该数据连接使用数据连接库中的 UDCX 文件。有关如何创建和使用 Microsoft Office SharePoint 服务器 2007年中的数据连接库,请访问下面的 Microsoft 开发人员网络 (MSDN) 的网站的详细信息:
How to: Create and use a data connection library (http://msdn.microsoft.com/en-us/library/ms772101.aspx)
若要用来存储数据连接的备用凭据的安全存储服务,请按照下列步骤操作:
  1. 创建新的安全存储服务目标应用程序,然后添加帐户信息。若要这样做,请按照下列步骤操作:
    1. 打开 SharePoint 2010 中央管理器。
    2. 单击 应用程序管理,然后单击 管理服务应用程序
    3. 单击 安全存储服务
    4. 单击 新建。将按照在配置目标应用程序设置 创建新安全存储目标应用程序 页上。请注意,您输入 目标应用程序标识 框中的字符串。

      注意请确保在创建新的安全存储服务目标应用程序之前会生成新密钥。
    5. 指向您刚才创建的目标应用程序的名称,然后从下拉列表中选择 设置凭据
    6. 输入为安全存储服务的目标应用程序的帐户信息,然后单击 确定
  2. 使用数据连接中的的安全存储服务目标应用程序。若要这样做,请按照下列步骤操作:
    1. 下载数据连接的指定的 UDCX 文件的副本。
    2. 使用记事本打开 UDCX 文件。
    3. 找到该 <udc:Authentication> 部分,然后将其替换为下列:
      <udc:Authentication>
      
      <udc:SSO AppId='TestSSOGroup' CredentialType='NTLM'/>
      
      </udc:Authentication>
      
      
    4. 更改到以前记录的 目标应用程序 ID 字符串的 AppId 属性的值。
    5. 在记事本中保存该文件。
    6. 将已更新的 UDCX 文件上载到 SharePoint 数据连接库中。然后,批准该文件。
    7. 重新启动 SharePoint 服务器 2010年服务器。
  3. 在 Web 浏览器中打开 InfoPath 2010 沙盒中处理窗体。
方法 3

显式声明 UDC 文件中的凭据。 若要这样做替换该 <udc:Authentication> UDCX 文件通过使用下面的代码中的部分:
<udc:Authentication>

 <udc:UseExplicit CredentialType="NTLM">

  <udc:UserId></udc:UserId>

  <udc:Password></udc:Password>

 </udc:UseExplicit>

</udc:Authentication>
此方法是安全,方法 2。

你可能感兴趣的:(Path)