Outlook 2007 中使用窗体缓存的方式,以及如何解决窗体缓存问题

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

概要

本文介绍如何使用 ForceFormReload 注册表项、 如何更改窗体缓存的大小和 Microsoft Office Outlook 2007年定位窗体,窗体缓存的位置的方式。本文还介绍了与 Outlook 窗体缓存可能会出现一些问题。最后,本文介绍了如何解决这些问题。

简介

本文介绍 Outlook 窗体缓存。本文还介绍在 Outlook 2007 中可能出现的各种窗体缓存问题。

注意Outlook 窗体缓存用于的表单被设计为与 Outlook 2003 或早期版本和程序通常发布到窗体库中。Outlook 2007 中还可以 Outlook 2003 和早期版本中的窗体。在这种情况下,窗体缓存用作以同样的方式在早期版本中使用窗体缓存。但是,Outlook 2007 中不使用新的窗体区域功能与窗体缓存。Outlook 2007 中只使用在方案中涉及自定义邮件类的窗体缓存。如果您正在开发新的自定义窗体为 Outlook 2007 中,我们建议您使用新窗体区域的功能。

因此,Outlook 就不必每次打开项目时,从磁盘中检索该窗体,outlook 将自定义窗体的本地副本存储在缓存中。当表单都存储在 Microsoft Exchange 公用文件夹中或在企业窗体库中的 Exchange Server 计算机上时,Outlook 可以使用窗体的缓存的版本。这将有助于提高本地计算机和 Exchange Server 计算机上的性能。

窗体缓存可能会发生问题。当您打开一个新项目或现有项目文件夹中时,通常会出现这些问题。您可能会收到以下错误消息之一:
  • 第一条消息
    无法显示所选窗体。请与管理员联系。
  • 消息 2
    查看此邮件所需的窗体不能显示。请与管理员联系。
其他情况下,Outlook 可能会显示一条错误消息。相反,Outlook 可能会打开默认窗体来代替自定义窗体。

Outlook 如何定位窗体

本部分介绍 Outlook 如何定位窗体在打开项目时所需。首次创建使用自定义窗体的项目时,该项目的邮件类字段设置为窗体的名称。例如,如果名为"公司",自定义任务文件夹中的自定义任务窗体后,邮件类是IPM。Task.Corporate

当打开该项目时,Outlook 会检查以查看哪些窗体,Outlook 必须用于显示项的邮件类字段。Outlook 然后搜索所需的窗体。Outlook 就会查找以下顺序在下列位置:
  • 内存

    如果您有打开该使用该域的另一项相同构成,Outlook 已在内存中都有该窗体。Outlook 使用该 copyof 窗体,而不是重新加载窗体。
  • 窗体缓存

    Outlook 会检查计算机以查看是否有使用窗体,然后才能在窗体缓存。如果 Outlook 定位 formin 高速缓存时,Outlook 会从缓存加载窗体。
  • 当前文件夹

    如果 Outlook 不会查找 formin 缓存,Outlook 将检查以查看是否在窗体已发布到 currentfolder。Outlook 不搜索其他文件夹。这包括父文件夹。Outlook 将存储作为隐藏项目发布到的文件夹的窗体。Theseitems 无法在 Outlook 视图中看到。
  • 个人窗体库

    如果当前文件夹中找不到该窗体,Outlook 将检查个人窗体库。个人窗体库窗体的默认邮件存储区的存储作为隐藏文件夹 (称为公共视图) 中的相关消息。默认邮件存储区是一套包含接收邮件的收件箱文件夹的文件夹。
  • 企业窗体库

    如果使用 MicrosoftExchange 服务器计算机被配置为支持企业窗体库中个人窗体库中,并且您的窗体不可用,Outlook 检查 Microsoft ExchangeServer 计算机上的企业窗体库。

找到窗体缓存

窗体缓存存储在硬盘驱动器上的隐藏文件夹中。因此,Microsoft Windows 显示隐藏的文件和系统文件,则必须更改该设置。这些步骤会有所不同,具体取决于您正在使用的 Windows 版本。您可能会在以下文件夹中查找窗体缓存:
  • Microsoft XP Windows
    C:\Documents 和 Settings\用户名\Local Settings\Application Data\Microsoft\FORMS
  • Windows Vista
    C:\Users\用户名\AppData\Local\Microsoft\FORMS
因为 Outlook 2007 中支持漫游用户,可能会更改窗体缓存的位置。窗体缓存的位置取决于哪些用户当前登录到计算机。不能配置用户设置,以指示窗体缓存的位置。因此,不能直接到默认位置以外的位置更改窗体缓存的位置。

了解窗体缓存的结构

重要提示此部分、方法或任务包含告诉您如何修改注册表的步骤。但是,如果不正确地修改了注册表,可能会出现严重问题。因此,请确保仔细按这些步骤操作。为增加保护,先备份注册表再对其进行修改。然后,您可以在出现问题时还原注册表。有关如何备份和还原注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756 如何在 Windows XP 中备份和还原注册表


窗体缓存包含 Frmcache.dat 文件。包含 Frmcache.dat 文件的摘要信息,以及指向默认的 Outlook 窗体和您使用的任何自定义窗体。缓存自定义窗体的副本将驻留在窗体文件夹的子文件夹中。

表单文件夹的子文件夹都具有随机名称。但是,子文件夹的名称类似于窗体的名称。里命名实际存储在这些文件夹中的窗体。但是,窗体具有.tmp 文件扩展名。如果您不知道文件夹,其中包含特定窗体的副本,可以使用该文件夹的时间戳或窗体的时间戳来帮助您查找该窗体。

Outlook 还存储已被缓存的自定义窗体所对应的注册表项。注册表项位于以下位置:
HKEY_CURRENT_USER\Software\Classes\CLSID
在 Outlook 2002 和更早版本中,Outlook 不会不跟踪的窗体来自何处时该窗体缓存的位置。例如,假定您有两个不同的窗体被发布到了两个不同的文件夹,并且这两个窗体都有相同的名称。如果您访问的第一个文件夹时,Outlook 会缓存该文件夹中的窗体。然后,如果您访问第二个文件夹时,Outlook 仍会使用缓存的窗体从第一个文件夹。Outlook 不使用的窗体中的第二个文件夹中。因此,每个窗体名称或邮件类字段必须唯一,因此当您使用窗体时不会发生冲突。自发布 Microsoft Outlook 97 以来,这一直是窗体缓存设计。

窗体缓存有关 Outlook 2003 和 Outlook 2007 中使用不同的设计。有关文件夹和窗体库的信息也会被缓存。与安全相关的问题导致的设计更改。例如,您可能必须在 Outlook 2003 中的十个不同的文件夹。您可能在这些十个文件夹中每个发布具有相同名称的窗体。在早期版本的 Outlook 中,该窗体被缓存一次,然后 Outlook 使用同一窗体从本地窗体缓存每次因为所有窗体都具有相同的名称。但是,Outlook 2007 中缓存的窗体时的每个文件夹。

由于在设计这种更改,我们建议您将窗体发布到个人窗体库 (而不是到一个文件夹。如果删除某一项基于自定义窗体,然后在已删除邮件文件夹中打开该项目,Outlook 找不到自定义窗体。相反,Outlook 将使用默认的窗体。如果将窗体发布到个人窗体库中,则可以避免该问题。

了解并更改窗体高速缓存的大小

默认情况下,Outlook 设置窗体缓存的最大大小限制为 2048 千字节 (KB)。若要更改此设置,请执行以下步骤:
  1. 工具菜单上,单击选项
  2. 单击其他选项卡,然后再单击高级选项
  3. 单击自定义窗体。在硬盘上的 Maximumspace,键入的数字大于 2048,然后单击确定
达到您为窗体缓存设置的最大磁盘空间后,Outlook 会清除缓存中的最早的未使用的表单。

注意Outlook 在 Frmcache.dat 文件中存储的窗体缓存的大小。Frmcache.dat 文件的格式是未记录。不支持直接修改 Frmcache.dat 文件。因此,您不能以编程方式更改窗体缓存的大小。Microsoft 不支持直接对表单文件夹的内容的任何部分,除非这种更改是 Microsoft 文档或由 Microsoft 产品支持服务仅为疑难解答建议。修改窗体文件夹中的内容之前,您必须首先进行备份。

恢复意外删除的窗体

如果您意外地删除已发布的窗体中,并从窗体已发布的文件夹,不能恢复该窗体,您可以从窗体缓存中恢复窗体的副本。

有关如何从窗体缓存中恢复窗体的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
292494 OL2002: 从缓存的副本还原 Outlook 窗体

解决窗体缓存

如果窗体缓存似乎不能正常运行,或者在打开项目时出现问题或者打开自定义窗体时,其他因素可能会导致意外的行为。请在删除窗体缓存之前,请使用下列故障排除方法。
  • 方法 1: 验证项目使用一次性窗体

    可以将窗体定义存储到项目,而不是在 publishedlocation 中。如果您将窗体定义存储在项目中,然后打开 theitem,您使用的窗体将始终存储在该项目中的窗体。如果您更改窗体中,一次性的 itemcontinues,以使用您在项目中存储窗体的较旧版本的已发布的版本。这可能看起来是窗体缓存的问题。但这是如何 theone 关闭项目的工作。

    窗体定义存储在项目可能会导致意外的行为。它可能会使您误以为该 yourproblem 与窗体缓存。

    要详细了解如何一次性项目的工作,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    290657 窗体定义和一次性窗体,Outlook 2002 中的说明
  • 方法 2: 验证问题与内存相关

    Outlook 可能不会释放内存中的窗体。此问题可能会在 acustom 表单中实现 Visual Basic 脚本版本代码时的方式相关。如果 Outlook 不会卸载窗体从内存,可能必须退出,然后重新启动 Outlook。这从内存并重新加载的窗体,从缓存、 窗体库中,或 afolder 的 forcesOutlook 中移除该窗体。

    您必须验证 Outlook 退出。可以使用 MicrosoftWindows 任务管理器来验证 Outlook 未运行。但是,werecommend 重新启动计算机,以确保问题是成是在内存中的 notrelated。

    如果 Outlook 不退出,这可能是导致窗体缓存问题。如果该窗体包含 VisualBasic 编写脚本版本的代码,请确定是否该窗体中的某些内容阻止 Outlook 退出。此外,禁用所有 COM 加载项或 anynon 标准 Microsoft Exchange 扩展。其中一种可能会导致问题。

清除窗体缓存

有不同的方法来清除 Outlook 窗体缓存。每个方法都有优点和缺点。我们建议您使用方法 1。
  • 方法 1

    使用清除缓存的方法。若要执行此操作,请执行以下步骤:
    1. 工具菜单上,单击选项,然后单击其他选项卡。
    2. 单击高级选项
    3. 高级选项框中,单击自定义窗体
    4. 自定义窗体框中,单击管理窗体
    5. 窗体管理程序框中,单击清除高速缓存
  • 方法 2

    手动重命名或手动 deletespecific 高速缓存,可能会导致问题的组件。例如,如果有特定的窗体有问题,您可以通过删除该缓存窗体的 thecorresponding 文件夹。我们建议您仅使用此方法,如果您是高级的用户。
  • 方法 3

    Frmcache.dat 文件重命名。做为第一次尝试解决窗体缓存的问题,由于 Frmcache.dat 文件可能包含有关其他形式的信息不是 dothis。但是,ifyour 清除窗体缓存的其他努力不成功,则可以 renamethe Frmcache.dat 文件。在重命名的 Frmcache.dat 文件后,重新启动 Outlook。
  • 方法 4

    调查的注册表项。各个项位于以下位置:
    HKEY_CURRENT_USER\Software\Classes\CLSID
    通常情况下,注册表项不窗体 cacheproblems 中起作用。但它们的确包含有关窗体缓存的信息。如果要解决窗体问题的所有 otherefforts 都不成功,您就可以验证该注册表的 thissection 包含窗体的信息。可以删除窗体中,有关的信息,然后重新启动 Outlook。

使用 ForceFormReload 注册表项

当窗体缓存起来,会导致出现问题时,您不能确定问题的原因,您可以设置
ForceFormReload
在 Outlook 中的注册表项。当
ForceFormReload
注册表项已启用,并在 Outlook 中打开基于自定义窗体的项目时,Outlook 会遇到错误,Outlook 会自动清除此特定窗体的缓存。然后,Outlook 会尝试再次打开该项目。尽管此方法无法解决窗体缓存问题的原因,此方法不会使问题透明使用自定义窗体的人。

若要启用
ForceFormReload
注册表键的功能,请按照下列步骤操作:
  1. 启动注册表编辑器。
  2. 在注册表中,请单击下面的项:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Outlook
  3. 编辑菜单上,单击AddValue,,然后添加以下注册表值:
    收起该表格展开该表格
    值的名称 数据类型数值数据
    ForceFormReloadREG_DWORD1
  4. 退出注册表编辑器。

    注意如果您有最新的 service pack 安装,此功能是在 Outlook 2000 和 Outlook2002 中可用。此功能是在原始版本的 Outlook 2003 中的 alsoavailable。

    有关如何获取最新的服务包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    285129 错误消息:"您所选的窗体不能显示"
    305403 OL2002: 错误消息:...所选的窗体不能显示,请联系您的管理员联系

在打开基于特定的自定义窗体的项目时出现的问题的疑难解答

当您尝试打开一个基于特定的自定义窗体的项目时出现问题,问题可能是与该特定窗体而不是窗体缓存自身相关。下列方法说明解决问题与特定窗体的方法。它们列出的顺序,则必须执行这些方法。
  • 方法 1

    禁用表单中的自定义 Visual BasicScripting 版代码。这可能表明以内与 Visual Basic 脚本版本的代码。要禁用该代码,请按住 SHIFT 键时打开一个项目。这将防止运行 Visual BasicScripting 版的代码。
  • 方法 2

    从该窗体的所有页面中删除所有控件。在窗体上的自定义控件可能会遇到问题正在初始化和 mayprevent Outlook 打开窗体。Outlook 无法打开窗体,如果满足以下条件的任何一种情况:
    • 在本地计算机上未安装的自定义控件。
    • 授权的注册表项是不正确的。
    若要执行此方法,请执行以下步骤:
    1. 在设计模式下打开窗体。
    2. 从窗体的所有页面中删除所有控件。
    3. 重新发布该窗体具有一个不同的名称。
    4. 尝试打开一个基于新发布的窗体的新项目。
    如果此方法可以解决此问题,与这些控件存在问题。
  • 方法 3

    从 aform 中删除所有的自定义字段。问题可能与窗体上的字段。字段可以 containformulas。这些公式可能会产生可以 causeperformance 问题或其他问题,会影响方式的循环引用,formopens。这是不常见的。但是,如果您怀疑一个窗体可能会损坏,解除对窗体的自定义的所有字段。然后,将发布 adifferent 的测试的名称与该窗体。

属性

文章编号: 919596 - 最后修改: 2013年11月19日 - 修订: 2.0
这篇文章中的信息适用于:
  • Microsoft Office Outlook 2007
关键字:?
kbproductlink kbexpertiseinter kbhowto kbmt KB919596 KbMtzh
机器翻译
重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。
点击这里察看该文章的英文版: 919596
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