State Service 应用程序没有定义数据库 (SharePoint Server)

适用于:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

规则名称:State Service 应用程序没有定义数据库

摘要: State Service 服务应用程序没有定义 State Service 数据库。 这可能会导致在使用某些 SharePoint 组件(例如,InfoPath Web 浏览器表单和 Microsoft SharePoint Server 图表 Web 部件)时出现错误。

原因:可能有下列一种或多种原因:

  • 服务器场管理员已删除与 State Service 服务应用程序关联的所有数据库。

  • 服务器场管理员从不创建数据库或将数据库与 State Service 服务应用程序关联。

解决方法:使用 Microsoft PowerShell 为 State Service 服务应用程序创建新的数据库或使用现有数据库

  1. 确认您具有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。

    • 要更新的所有数据库上的 db_owner 固定数据库角色。

    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。

    管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint 2013 产品 cmdlet 的权限。

    注意

    [!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  2. 启动 SharePoint 命令行管理程序。

    有关如何与 Windows Server 2012 进行交互的详细信息,请参阅 Windows 中的常见管理任务和导航

  3. 如果没有可供您使用的数据库,请在 PowerShell 命令提示符处,键入以下命令:

    New-SPStateServiceDatabase -Name <DatabaseName> -DatabaseServer <ServerName> [-DatabaseCredentials <Credential>] [-ServiceApplication <ID>]
    

    其中:

    • <DatabaseName> 是字符串形式的数据库名称。

    • <ServerName> 是数据库服务器的名称。

    • <Credential> 是数据库的 SQL Server 身份验证凭据。 如果未使用此参数,则将使用 Windows 身份验证。

    • <ID> 是 State Service 服务应用程序的标识符(以字符串或 GUID 表示)。 如果只有一个 State Service 服务应用程序,则您无需指定此参数。

  4. 在某些环境中,您必须连接到现有的空 SQL 数据库。 在此示例中,您在 Windows PowerShell 命令提示符处,键入以下命令:

    Mount-SPStateServiceDatabase -Name <DatabaseName> -DatabaseServer <ServerName> [-DatabaseCredentials <Credential>] [-ServiceApplication <ID>]
    

    其中:

    • <DatabaseName> 是字符串形式的数据库名称。

    • <ServerName> 是数据库服务器的名称。

    • <Credential> 是数据库的 SQL Server 身份验证凭据。 如果未使用此参数,则将使用 Windows 身份验证。

    • <ID> 是 State Service 服务应用程序的标识符(以字符串或 GUID 表示)。 如果只有一个 State Service 服务应用程序,则您无需指定此参数。

有关详细信息,请参阅 Mount-SPStateServiceDatabaseNew-SPStateServiceDatabase