配置服务:“工作流暂留”选项卡

使用**“配置服务”对话框中的“工作流暂留”选项卡,可以允许或禁止将工作流服务实例暂留到暂留存储。选择“SQL Server 工作流暂留”选项可以允许将服务实例暂留到 SQL Server 数据库。选择“自定义或无”**选项可以使用 SQL Server 数据库之外的实例存储,或者根本不使用任何暂留功能。

将 SQL Server 暂留提供程序与某个服务关联时,必须为该提供程序指定一个连接字符串才能使其连接到 SQL Server 2008 或 2005 暂留数据库。您可以使用**“高级暂留设置”对话框(可通过单击“高级”**按钮启动该对话框)配置一些高级 SQL 暂留功能,例如,在实例完成之后,将其保留在暂留存储中,然后使用 GZip 算法编码实例的状态信息。

Important要点
此选项卡仅适用于工作流 (WF) 服务,不适用于基于 WCF 代码的服务。

对话框字段

字段

描述

自定义或无

选择此选项可以将 SQL Server 数据库之外的实例存储与该服务相关联,或者根本不使用暂留功能。

SQL Server 工作流暂留

选中此复选框可以允许将实例的状态信息暂留到 SQL Server 2008 或 2005 暂留数据库中。选择此选项时必须为“SQL Server 存储”字段指定一个值。

如果您没有为包含该服务的应用程序启用 net.pipe 协议,而您又从“自定义或无”选项切换到“SQL Server 工作流暂留”选项,且配置对话框为应用程序、虚拟目录或服务级别,则您会在消息框中看到以下警告消息。

警告

工作流暂留需要对应用程序启用 net.pipe 协议。您希望在应用更改时启用 net.pipe 吗?

如果您单击消息框上的“确定”,则请从下拉列表中选择实例存储,然后在“配置服务”对话框上单击“确定”“应用”,即可为应用程序启用 net.pipe 协议。若要验证是否已为应用程序启用了 net.pipe 协议,请先右键单击该应用程序的名称,然后指向“管理应用程序”,再单击“高级设置”,然后确认 net.pipe 协议是否已在“已启用的协议”字段中列出。

在以上情况中,您还会在该选项卡的顶部看到以下警告消息。

警告

工作流暂留并未完全正常工作,因为应用程序的已启用协议列表中没有 net.pipe 协议

如果您为该服务启用了 SQL 暂留,则对此应用程序禁用 net.pipe 协议时,您也会看到此警告消息,请打开“配置服务”对话框,然后切换到“工作流暂留”选项卡。

如果您没有为包含该服务的网站启用 net.pipe 绑定,而您又从“自定义或无”选项切换到“SQL Server 工作流暂留”选项,且配置对话框为站点级别,则您会在该选项卡的顶部看到以下警告消息。

警告

工作流暂留未运行,因为该网站未启用 net.pipe 协议绑定

若要为该网站启用 net.pipe 绑定,请执行以下步骤:

  1. 右键单击该站点名,然后单击“编辑绑定”

  2. “站点绑定”对话框中,单击“添加”

  3. “添加站点绑定”对话框中,选择“net.pipe”作为“类型”,键入 * 作为绑定信息,然后单击“确定”

  4. 单击“确定”以关闭“站点绑定”对话框。

同样,您也会在此选项卡的顶部看到该服务器级别的以下警告消息。

警告

工作流暂留可能未运行。对于需要暂留的应用程序,请确保将 net.pipe 协议包含在已启用的协议列表中,并确保 net.pipe 绑定包含在站点的绑定列表中。

SQL Server 存储

选择您希望 SQL 暂留提供程序使用的实例存储。下拉列表中的实例存储可以是在 IIS 配置层次结构的选定级别上本地定义的,也可以是从 IIS 配置层次结构中的更高级别(应用程序、站点、根 Web.config 或 machine.config)继承而来的。配置文件中定义的实例存储指向 SQL 暂留提供程序用于连接到 SQL Server 2008 或 2005 暂留数据库的连接字符串。

Tip技巧
如果您在下拉列表中没有看到任何 SQL 实例存储,则您需要创建一个 SQL 实例存储。您可以使用以下“配置暂留存储”部分中介绍的步骤创建并初始化 SQL 实例存储。

高级

单击此按钮可启动“高级暂留设置”对话框,您可以通过该对话框配置高级暂留相关的设置。

配置暂留存储

您可以运行 AppFabric 配置向导来配置暂留存储,方法是成功运行安装向导之后立即运行配置向导,或者在初始安装完成后从“开始”菜单执行配置向导。以下过程提供了使用配置向导配置实例存储的步骤。

备注

配置向导中执行的许多步骤都可以通过执行应用程序服务器扩展配置 cmdlet 来手动执行。

  1. 依次单击**“开始”“所有程序”“Windows Server AppFabric”“配置 AppFabric”,打开“Windows Server AppFabric 配置向导”**。

  2. 在**“开始之前”页上,单击“下一步”**。

  3. 在**“客户体验改善计划”页上,单击“下一步”**。

  4. 在**“配置托管服务”页上,使用下表配置暂留存储,然后单击“下一步”**。

    控件 描述

    设置暂留配置

    选择此选项可以选择工作流管理服务帐户,以及选择和配置暂留提供程序。

    AppFabric 工作流管理服务帐户

    为工作流管理服务显示 Windows 登录帐户。默认帐户为 NT Authority\Local Service。您无法在此文本框中输入该服务帐户,但必须在“选择用户”对话框(可通过单击“浏览”访问)中输入。

    备注

    工作流管理服务的安全标识符 (SID) 是管理员组的成员,因此 WMS 对暂留数据库具有管理访问权限。

    更改

    如果您单击工作流管理服务帐户的“浏览”按钮,则您可以为系统服务选择用户凭据。您可以选择内置帐户,也可以输入自定义的用户名和密码。在“选择用户”对话框中,请选择您要用于该服务的帐户,然后单击“确定”

    暂留提供程序

    选择将要授予对暂留存储的访问权限的提供程序。本地 machine.config 文件上注册的所有有效的数据提供程序都会显示在此列表中。

    Important要点
    在此版本中,您只能选择 sqlStoreProvider 暂留数据提供程序。

    配置

    单击即可设置暂留提供程序的配置。

    如何安装其他暂留提供程序

    您可以将暂留提供程序添加到可在“暂留提供程序”下拉框中选择的暂留提供程序列表中。单击此链接可获取有关如何添加提供程序的帮助。

  5. 如果您在**“配置托管服务”页中单击了 SQL 暂留提供程序 (sqlStoreProvider) 的“配置”,则会出现“Windows Server AppFabric 暂留存储配置”对话框。下表介绍了此对话框中的控件。使用此表配置暂留提供程序,然后单击“确定”以返回到“配置托管服务”**页。验证该存储是否已成功注册并初始化。

    控件 描述

    在根 web.config 中注册暂留存储注册

    选中可注册连接字符串标识的暂留存储(通过将暂留存储的配置添加或更新到根 Web.config 文件中)。相关配置包括 ApplicationServerWorkflowInstanceStoreConnectionString 及其相关的 SQL 存储实例条目。

    即使未选中“初始化暂留存储”,您也可以选中此复选框。如果数据库已被创建和初始化,则选中此复选框,或者,如果未初始化,则指向数据库。

    备注

    如果已安装了托管管理工具,但未安装托管服务功能,则此复选框处于禁用状态。

    初始化暂留存储

    选中可初始化连接字符串中标识的暂留数据库(使用前根据需要进行初始化)。初始化将创建数据库架构和基于该架构的结构。如果数据库不存在,将创建数据库,然后进行初始化。

    如果选中了此复选框,但未选中“在根 web.config 中注册暂留存储注册”,则会创建该数据库(如果需要)并初始化,但无法通过此计算机使用该数据库。

    备注

    对于要创建的数据库,您必须具有在目标服务器上创建数据库的权限。

    连接字符串

    指定用于保存暂留事件的服务器和数据库的字符串。

    “服务器”字段中,输入数据库所在的计算机的名称。

    “数据库”字段中,输入要为暂留数据创建的数据库的名称,或从列表中选择一个现有数据库。

    备注

    对于此版本,您只能选择 SQL 暂留提供程序的连接字符串。默认情况下,该字符串的名称为 ApplicationServerWorkflowInstanceStoreConnectionString,且无法进行更改。连接字符串名称在根 Web.config 文件中注册。您可以在此对话框中更改服务器和数据库。

    安全配置

    选择“Windows 身份验证”“SQL Server 身份验证”。默认情况下选择的是“Windows 集成安全性”,组使用默认的内置组来填充。

    对于 Windows 身份验证,若要更改管理员、读者或用户,请单击“浏览”,然后使用标准的“选择用户或组”对话框输入一个不同的值。仅当选中“初始化暂留存储”时,才可以更改管理员、观察者或写入者的值。

  6. 在您单击了**“配置 SQL 暂留存储”对话框中的“确定”**之后,您会收到一条弹出提示,指示您需要验证工作流管理服务标识是否为暂留数据库管理员角色的成员。有关详细信息,请参阅保护托管和暂留的安全主题。

  7. 设置暂留配置之后,请单击**“配置托管服务”页上的“下一步”以显示“配置缓存服务”**页,然后继续进行本主题的“配置缓存服务”部分。

  8. 在**“配置缓存服务”页上,单击“下一步”**。

  9. 在**“配置 AppFabric 缓存节点”页上,单击“下一步”**。

  10. 在**“配置应用程序”页上,清除“启动 Internet 信息服务(IIS)管理器”,然后单击“完成”**以关闭配置向导。

相关配置

“工作流暂留”选项卡中的字段对应于 sqlWorkflowInstanceStore 元素以及 sqlWorkflowInstanceStore 元素上的 connectionStringName 属性。如果已选中**“SQL Server 工作流暂留”选项,则会将 sqlWorkflowInstanceStore 元素添加到配置文件中与该服务关联的服务 <behavior> 元素中。sqlWorkflowInstanceStore 元素上的 connectionStringName 属性设置为您从“SQL Server 存储”下拉列表中选择的实例存储所指向的连接字符串。如果您将该设置从“SQL 工作流暂留”更改为“自定义或无”**,则 sqlWorkflowInstanceStore 元素会从配置文件中删除。

在下面的示例配置中,已通过将 behavior 元素中的 sqlWorkflowInstanceStore 元素与服务 s1 关联,为服务 s1 启用暂留功能。

<behaviors>
    <serviceBehaviors>
        <behavior name="TutorialServiceConfiguration">
            <sqlWorkflowInstanceStore connectionStringName="DefaultSqlWorkflowInstanceStoreConnectionString" hostLockRenewalPeriod="00:00:30" instanceEncodingOption="None" instanceCompletionAction="DeleteAll" instanceLockedExceptionAction="NoRetry" />        </behavior>
   </serviceBehaviors>
</behaviors>

您在安装 AppFabric 时创建的暂留存储是在根 Web.config 文件中定义的。您也可以在配置文件中创建自定义实例存储条目。此选项卡会使用您为**“SQL Server 存储”**字段选择的实例存储所指向的连接字符串的名称,并在其添加的 sqlWorkflowInstanceStore 元素中使用该连接字符串。

    <microsoft.applicationServer>
        <persistence>
            <instanceStores>
                <add name="defaultSqlPersistenceStore" provider="SqlPersistenceStoreProvider" connectionStringName="DefaultSqlWorkflowInstanceStoreConnectionString" />
            </instanceStores>
        </persistence>
    </microsoft.applicationServer>

本节内容

  1. “高级暂留设置”对话框

  2011-12-05