尝试为 Microsoft Dynamics AX 4.0 启动 AOS 时出现错误消息:"100 错误︰ 无法创建另一个系统信号"

适用于: Microsoft Dynamics AX 4.0Axapta Object Server

症状


当您尝试启动应用程序对象服务器 (AOS) Microsoft Dynamics AX 4.0 时,则不会启动 AOS。此外,您还会收到下列错误消息之一︰
错误 100︰ 无法创建另一个系统信号量。
对象服务器 01︰ 针对客户端的会话 1 发出的对话框︰ 程序不能加载和执行类 SqlDatabaseInit,是为了确定数据库供应商非常重要,并加载相应的 SQL 系统变量。原因可能是没有足够的访问权限,SQL 数据库、 应用程序文件丢失或损坏,或在类本身中的语法错误。

原因


由于几种不同的情况可能会发生此问题。若要确定导致此错误信息的具体原因,我们建议您查看应用程序日志,以查找更多有意义的错误消息中。若要执行此操作,请执行以下步骤:
  1. 单击开始,指向所有程序,都指向管理工具,然后单击事件查看器
  2. 事件查看器 (本地),单击应用程序
  3. 在右窗格中,向下滚动消息来查找错误消息的列表。
  4. 双击错误消息,以确定消息是否适用于您的具体情况。
您找到错误消息可能表明一个或多个下列条件,则︰
  • 没有启动 Microsoft SQL Server 服务。
  • 用于启动 AOS 帐户在 SQL Server 中没有正确的数据库角色。
  • 超出了 AOS 许可证的数量。
  • SQL Server 数据库的排序次序是正确区分大小写。
注意:该列表包含此错误信息的已知的原因。可能有其他原因。

解决方案


若要解决此问题,验证特定错误消息适用于您的具体情况后,根据您的具体情况使用下列方法之一。

注意:您可能需要使用多个方法来解决此问题。

方法 1︰ 启动 SQL Server 服务

AOS 取决于启动 SQL Server 服务。如果未启动 SQL Server 服务,则不会启动 AOS。

根据正在运行的 SQL Server 版本中使用以下过程中的一个。

Microsoft SQL Server 2000

要启动 SQL Server 2000年服务,请执行以下步骤︰
  1. 单击开始,指向所有程序,都指向管理工具,然后单击服务
  2. 找到该MSSQLServer服务。
  3. 如果该服务未启动,请右键单击该服务,,然后单击开始

Microsoft SQL Server 2005

要启动 SQL Server 2005 的服务,请执行以下步骤︰
  1. 单击开始,指向所有程序,都指向管理工具,然后单击服务
  2. 找到该SQL Server (MSSQLServer)服务。
  3. 如果该服务未启动,请右键单击该服务,,然后单击开始

方法 2︰ 确保用于启动 AOS 帐户具有在 SQL Server 中的正确的数据库角色

用于启动 AOS 服务帐户必须至少具有以下数据库角色在 SQL Server 中分配︰
  • db_ddladmin
  • db_datareader
  • db_datawriter
要确定该帐户是否具有正确的数据库角色,请执行以下步骤︰
  1. 确定用于启动 AOS 服务帐户。若要执行此操作,请执行以下步骤:
    1. 单击开始,指向所有程序,都指向管理工具,然后单击服务
    2. 找到有动态服务器 $启动该服务。
    3. 用鼠标右键单击该服务,然后单击属性
    4. 单击登录选项卡。
    5. 登录时,确定用来登录到 AOS 服务帐户。

      备注:
      • 默认情况下, Authority\Network NT 服务帐户用于登录到 AOS 服务。
      • 如果 AOS 服务位于同一台 SQL Server,则需要 SQL Server 权限的帐户是NT Authority\Network 服务帐户。
      • 如果 AOS 服务从 SQL Server 运行在单独的计算机上,则需要 SQL 服务器的权限的帐户是计算机的 AOS 服务正在其运行的计算机名。计算机名的格式如下所示︰
        domain\computer_name$
        在这种情况下,域名是网络域的名称和计算机名称 $是 AOS 服务器的名称。
  2. 根据正在运行的 SQL Server 版本中使用以下过程中的一个。

    SQL Server 2000

    对于 SQL Server 2000,请按照下列步骤︰
    1. 单击开始,指向所有程序,都指向Microsoft SQL Server,然后单击企业管理器
    2. 请展开Microsoft SQL 服务器
    3. 展开SQL Server 组
    4. 展开(本地) (Windows NT)
    5. 展开安全性
    6. 单击登录
    7. 右键单击您在步骤 1 中确定的帐户,然后单击属性
    8. 单击数据库访问选项卡。
    9. 单击 Axapta 数据库,然后验证选中了下列数据库角色︰
      • db_ddladmin
      • db_datareader
      • db_datawriter
    10. 单击确定
    11. 展开数据库
    12. 展开的动态数据库。
    13. 单击存储过程,然后找到下面的存储的过程︰
      • createserversessions
      • createusersessions
    14. 用鼠标右键单击某个存储的过程,然后单击属性
    15. 单击权限
    16. 找到您在步骤 1 中,单击以选择执行复选框,然后单击确定中确定的帐户。

      注意:步骤 2 m 中的其他存储过程,请重复步骤 2 p 的 2n。

    SQL Server 2005

    对于 SQL Server 2005 中,请执行以下步骤︰
    1. 单击开始,指向所有程序,都指向Microsoft SQL Server 2005年中,,然后单击SQL Server 管理 Studio
    2. 摘要选项卡上,双击安全
    3. 双击登录
    4. 右键单击您在步骤 1 中确定的帐户,然后单击属性
    5. 单击用户映射
    6. 单击 Axapta 数据库,然后验证选中了下列数据库角色︰
      • db_ddladmin
      • db_datareader
      • db_datawriter
    7. 单击确定
    8. 展开数据库
    9. 展开的动态数据库。
    10. 展开编程
    11. 展开存储过程
    12. 找到下面的存储的过程︰
      • createserversessions
      • createusersessions
    13. 用鼠标右键单击某个存储的过程,然后单击属性
    14. 单击权限
    15. 找到在步骤 1 中确定的帐户,单击以选中执行权限授予复选框,然后单击确定

      注意:重复步骤 2 l 中的其他存储过程 2o 的步骤 2 米。

方法 3︰ 确定是否超出了 AOS 许可证的数量

要确定是否超过的 AOSs 的当前许可数,请执行以下步骤︰
  1. 启动 Microsoft Dynamics AX 4.0,然后再登录。
  2. 单击管理
  3. 展开安装程序
  4. 展开系统
  5. 单击许可证信息
  6. 系统选项卡上,选择应用程序对象服务器代码描述
  7. 状态列中,请注意的 AOSs 的当前许可的数目。
注意:若要启动附加 AOS,可以关闭正在运行 AOS。或者,您可以购买附加 AOS 许可证。

方法 4︰ 确保 SQL Server 数据库的排序顺序不区分大小写

在 Microsoft Dynamics AX 4.0 中,必须不区分大小写的数据库的排序顺序。


要确定您的具体情况中的排序次序,请根据正在运行的 SQL Server 版本使用以下过程中的一个。

Microsoft SQL Server 2000

对于 Microsoft SQL Server 2000,请按照下列步骤︰
  1. 单击开始,指向所有程序,都指向Microsoft SQL Server,然后单击查询分析器
  2. 登录到查询分析器,然后运行以下脚本︰
    sp_helpsort

Microsoft SQL Server 2005

对于 Microsoft SQL Server 2005 中,请执行以下步骤︰
  1. 单击开始,指向所有程序,都指向Microsoft SQL Server 2005年中,,然后单击SQL Server 管理 Studio
  2. 单击新建查询,然后运行以下脚本︰
    sp_helpsort
在脚本的结果列表中,应该有一个列表,其中指出"不区分大小写"区分大小写。"