中文

错误:无法打开登录请求的数据库。 登录失败。 用户登录失败

错误消息

在 Microsoft .NET Framework 的 ArcGIS Server Manager 中,可以在不同的 Web 服务器计算机上创建 Web 应用程序。 然后,此远程 Web 应用程序可在管理器中得到保护,只有指定的角色可以访问该应用程序。 当用户登录到 Web 应用程序时,浏览器可能会显示错误。

默认情况下,将显示一般性错误,除非浏览器在托管该应用程序的 Web 服务器上运行。 在后一种情况下,会显示错误消息。 错误消息可能如下列行所示:

“无法打开登录请求的数据库“<数据库>”。 登录失败。 用户“<用户名>”登录失败。

<用户名> 通常是网络服务或 ASPNET。

原因

当为 ArcGIS Server 配置的用户存储位于 Microsoft SQL Server 中时,可能会发生此错误,尽管它也可能发生在自定义提供程序中的用户存储。 原因是在远程 IIS Web 服务器上运行的 Web 应用程序无法访问管理器应用程序中定义的用户存储。

具体来说,问题可能是由于运行 SQL Server 的计算机名称没有被充分指定,或者访问 SQL Server 或自定义提供程序的帐户权限不正确。

解决方案或解决方法

解决方案可能需要以下两个步骤中的一个或全部步骤:

1) 更正数据库的计算机名称或位置信息。

2) 确保运行应用程序的帐户的权限有效。

以下步骤解决了 SQL Server 的问题。 对于使用自定义提供程序时出现的类似问题,必须为自定义提供程序执行可比较的步骤,例如配置提供程序位置和权限。

  1. 错误的第一个原因可能是需要指定 SQL Server 的计算机名称,以便远程计算机可以找到它。 要解决此问题:

    a) 登录到 ArcGIS Server Manager。

    b) 单击“安全性 - 设置”,然后单击“配置...”。

    c) 在安全性向导中,第一个面板应设置为 SQL Server。 单击“下一步”。

    d) 在“指定 SQL Server”面板中,检查 Server 的值。 它应该指定服务器名称,以便远程计算机可以找到它。 该名称不能使用“.”或“localhost”。 如有必要,请验证托管应用程序的远程 Web 服务器是否可以通过名称(或 IP 地址)访问 SQL Server。 如果 SQL Server 计算机名称已设置为远程 Web 服务器可用于访问的名称,请跳到下面的步骤 2。 否则,更改名称(如有必要)以使用 SQL Server 计算机名称或 IP 地址。

    e) 如果 SQL Server 名称已被修改,请单击“连接”,并完成向导以保存更新的设置。

    f) 转到“应用程序”选项卡,并针对远程 Web 应用程序,单击“权限”按钮。

    g) 在“权限”对话框中,单击“保存”(可以更改权限,但不是必需的)。 这将使用更新的 SQL Server 名称重新编写 Web 应用程序的配置。

    h) 打开浏览器转至远程 Web 应用程序并登录。 如果可以成功登录并使用应用程序,请跳过下面的其余步骤。 如果显示权限错误,请继续执行步骤 2。
  2. 必须将到 SQL Server 数据库的连接配置为允许 Web 应用程序访问该数据库。

    这里说明的方法是使用 SQL 登录而非 Windows 身份验证连接到数据库。 按照以下说明更改 Web 应用程序的身份验证,以便为 Web 应用程序的连接使用 SQL 登录。

    a) 打开 SQL Server Management Studio 并连接到 SQL Server 实例。 对于 SQL Server Express,如有必要,请安装 SQL Server Management Studio Express

    b) 对于SQL Server Express,允许 SQL 登录。 为此,请在左侧树中右键单击该服务器(<服务器名称>\SQLEXPRESS),然后单击“属性”。 在“属性”窗口中,单击“安全性”页面链接。 在安全性面板中,单击“SQL Server 和 Windows 身份验证模式”的 Server 身份验证下的选项。 单击“确定”保存设置并关闭“属性”对话框。

    c) 通过展开“安全性”文件夹并单击“登录”文件夹来添加新的 SQL 登录。 右键单击“登录”文件夹并单击“新登录”。 在打开的对话框中,输入新登录的名称(例如,AGSApplications)。 单击 SQL Server 身份验证选项,输入密码,然后确认密码。

    d) 在同一个新登录对话框中,单击“用户映射”页面链接。 在“映射到此登录的用户:”下,单击包含 ArcGIS Server 系统用户的数据库旁边的复选框。 确保在对话框中高亮显示数据库,然后在“<数据库> 的数据库角色成员资格”下,检查 db_owner 角色。 单击“确定”创建登录及其角色。 关闭 SQL Server Management Studio。

    e) 登录到 ArcGIS Server Manager >“安全性”>“设置”>“配置...”。

    f) 在安全性向导中,如有必要,单击 SQL Server 用作用户位置,然后单击“下一步”。

    g) 在“指定 SQL Server”面板中,使用服务器名称而非“.”或“localhost”输入 SQL Server 名称。 单击“连接”以连接到 SQL Server。

    h) 在显示的对话框下部,取消选中“使用信任的连接”复选框。 输入上面创建的 SQL 登录的登录名和密码。 从“使用现有数据库”下拉菜单中选择数据库。 单击“下一步”,按指示完成向导。

    i) 转到“应用程序”选项卡,并针对远程 Web 应用程序,单击“权限”按钮。

    j) 在“权限”对话框中,单击“保存”(可以更改权限,但不是必需的)。 这将使用更新的 SQL Server 登录重新编写 Web 应用程序的配置。

    k) 打开浏览器转至远程 Web 应用程序并登录。 应可以成功登录并使用应用程序。 如果发生任何权限错误,请重新检查 SQL 登录和管理器配置的设置。