症状
尝试启动适用于 Microsoft Dynamics AX 4.0 (AOS) 应用程序对象服务器时,AOS 不会启动。 此外,会收到以下错误消息之一:
错误 100:无法创建另一个系统信号灯。
对象服务器 01:针对无客户端会话 1 颁发的对话框:程序无法加载和执行类"SqlDatabaseInit",为了标识数据库供应商并加载相应的 SQL 系统变量,这一点至关重要。 原因可能是对应用程序的访问权限不足、SQL 数据库文件缺失或损坏,或者类本身 (语法) 错误。
原因
由于几种不同的条件,可能会出现此问题。 若要确定错误消息的具体原因,建议在应用程序日志中查找更有意义的错误消息。 为此,请按照下列步骤操作:
-
单击"开始",指向"所有程序",指向"管理工具",然后单击"事件查看器"。
-
在"事件查看器 (本地) "下,单击"应用程序"。
-
在右窗格中,向下滚动邮件列表以查找错误消息。
-
双击错误消息,确定该消息是否适用于你的情况。
找到的错误消息可能指示以下一个或多个条件为 true:
-
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 服务,请执行以下步骤:
-
单击"开始",指向"所有程序",指向"管理工具",然后单击"服务"。
-
找到 MSSQLServer 服务。
-
如果未启动服务,请右键单击该服务,然后单击"启动"。
Microsoft SQL Server 2005
若要启动 SQL Server 2005 服务,请执行以下步骤:
-
单击"开始",指向"所有程序",指向"管理工具",然后单击"服务"。
-
找到SQL Server (MSSQLServer) 服务。
-
如果未启动服务,请右键单击该服务,然后单击"启动"。
方法 2:确保用于启动 AOS 的帐户在 SQL Server
用于启动 AOS 服务的帐户必须至少在 SQL Server:
-
db_ddladmin
-
db_datareader
-
db_datawriter
若要确定帐户是否具有正确的数据库角色,请执行以下步骤:
-
确定用于启动 AOS 服务的帐户。 为此,请按照下列步骤操作:
-
单击"开始",指向"所有程序",指向"管理工具",然后单击"服务"。
-
找到以 Dynamics Server$ 开头的服务。
-
右键单击该服务,并单击"属性"。
-
单击" 登录" 选项卡。
-
在 "以 登录方式"下,确定用于登录 AOS 服务的帐户。
说明-
默认情况下 ,NT Authority\Network Service 帐户用于登录 AOS 服务。
-
如果 AOS 服务与 SQL Server 在同一计算机上,则SQL Server权限的帐户是NT Authority\Network Service帐户。
-
如果 AOS 服务在 SQL Server 的单独计算机上运行,则需要 SQL 服务器权限的帐户是运行 AOS 服务的计算机的计算机名称。 计算机名称的格式如下所示:
domain\computer_name$在这种情况下, 域 是网络域的名称 ,computer_name$ 是 AOS 服务器的名称。
-
-
-
根据运行的版本,使用以下SQL Server之一。
SQL Server 2000 for SQL Server 2000,请执行以下步骤:
-
单击"开始",指向"所有程序",Microsoft SQL Server,然后单击"Enterprise管理器"。
-
展开"Microsoft SQL服务器"。
-
展开"SQL Server组"。
-
展开 (本地) (Windows NT) 。
-
展开"安全性"。
-
单击"登录名"。
-
右键单击在步骤 1 中确定的帐户,然后单击"属性"。
-
单击" 数据库访问" 选项卡。
-
单击 Axapta 数据库,然后验证是否选择了以下数据库角色:
-
db_ddladmin
-
db_datareader
-
db_datawriter
-
-
单击“确定”。
-
展开"数据库"。
-
展开 Dynamics 数据库。
-
单击 "存储过程",并找到以下存储过程:
-
createserversessions
-
createusersessions
-
-
右键单击存储过程,然后单击"属性"。
-
单击"权限"。
-
找到在步骤 1 中确定的帐户,单击以选中"EXEC"复选框,然后单击"确定"。
注意 对步骤 2m 中的另一个存储过程重复步骤 2n 到 2p。
SQL Server 2005 for SQL Server 2005,请执行以下步骤:
-
单击"开始",指向"所有程序",指向Microsoft SQL Server 2005,然后单击"SQL Server Management Studio"。
-
在"摘要"选项卡上,双击"安全性"。
-
双击"登录名"。
-
右键单击在步骤 1 中确定的帐户,然后单击"属性"。
-
单击"用户映射"。
-
单击 Axapta 数据库,然后验证是否选择了以下数据库角色:
-
db_ddladmin
-
db_datareader
-
db_datawriter
-
-
单击“确定”。
-
展开"数据库"。
-
展开 Dynamics 数据库。
-
展开"可编程性"。
-
展开"存储过程"。
-
找到以下存储过程:
-
createserversessions
-
createusersessions
-
-
右键单击存储过程,然后单击"属性"。
-
单击"权限"。
-
找到在步骤 1 中确定的帐户,单击以选中EXEC权限的"授予"复选框,然后单击"确定"。
注意 对步骤 2l 中的另一个存储过程重复步骤 2m 到 2o。
-
方法 3:确定是否超过 AOS 许可证数
若要确定是否超过当前许可的 AOS 数量,请执行以下步骤:
-
启动 Microsoft Dynamics AX 4.0,然后登录。
-
单击"管理"。
-
展开"设置"。
-
展开"系统"。
-
单击"许可证信息"。
-
在"系统"选项卡上的"代码说明"下,选择"应用程序对象服务器"。
-
在 "状态 "列中,记下当前获得许可的 AOS 数量。
注意 若要启动其他 AOS,可以关闭正在运行的 AOS。 或者,可以购买其他 AOS 许可证。
方法 4:确保数据库SQL Server顺序不区分大小写
在 Microsoft Dynamics AX 4.0 中,数据库的排序顺序必须不区分大小写。
若要确定你的情况的排序顺序,请根据运行中SQL Server,使用以下过程之一。
Microsoft SQL Server 2000
对于 Microsoft SQL Server 2000,请执行以下步骤:
-
单击"开始",指向"所有程序",指向Microsoft SQL Server,然后单击"查询分析器"。
-
登录到 Query Analyzer,然后运行以下脚本:
sp_helpsort
Microsoft SQL Server 2005
对于 Microsoft SQL Server 2005,请执行以下步骤:
-
单击"开始",指向"所有程序",指向Microsoft SQL Server 2005,然后单击"SQL Server Management Studio"。
-
单击 "新建查询",然后运行以下脚本:
sp_helpsort
在脚本结果列表中,应该有一个列表,其中声明"不区分大小写"或"区分大小写"。