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

 

**上一次修改主题:**2018-02-22

**摘要:**了解如何解析 SharePoint 运行状况分析器规则“State Service 应用程序没有定义数据库”。

**规则名称:**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