Friday, July 5, 2013

AX 2012 R2 Installation Issue AOS (Firewall)

I recently experienced a strange issue when installing a new AOS instance (AX 2012 R2 CU6) on Windows Server 2012 Standard.

Microsoft has described the firewall requirements for AX 2012 R2 on TechNet (Firewall settings for Microsoft Dynamics AX components [AX 2012]), but they seem to be missing one IMPORTANT rule allowing the new AOS to access the registry remotely, read/write to the Event Log and configure the databases (worth another post later). It took me a while to identify the exact rule to enable, but it was quick and easy to identify that the issue was related to the Windows Firewall on the database server  (by disabling the firewall in the Domain Profile). The missing rule is also depending of the roles and features You have promoted on the server, but in my case, the rule Remote Event Log Management (TCP 445) was Disabled. Enabling this rule, solved my issue. You could of course define a separate rule depending on the requirements in the actual environment.

The Remote Registry Service is involved  (see below information regarding System.IO.IOException: The network path was not found RegistryKey.OpenRemoteBaseKey)in this phase of the installation and on Windows Server 2012, this service is by default configured to start when triggered (needed) > Automatic (Triggered Start).  The Remote Registry issue has been described by others like MVP Brandon George (related to SQL Server 2012 AlwaysOn Availability Groups). This is also mentioned in a comment on the TechNet article referenced above.

Symptoms

1. The Windows Installer (MSI) never shows up when AX Setup tries to install the AOS Component


















2. AX Setup reports the installation as successful


















3. Neither the Service or the Server Configuration application is installed

4. The DynamicsSetupLog contains the following information

2013-07-05 10:11:51Z  === Starting execution phase ===
2013-07-05 10:11:51Z Executing 'Application Object Server (AOS)' this pass.
2013-07-05 10:11:51Z Queueing for installation: Application Object Server (AOS)
2013-07-05 10:11:51Z Component installation task completed successfully.
2013-07-05 10:11:51Z === Setting up Application Object Server (AOS) ===
2013-07-05 10:11:51Z Adding account 'domain\service account' as a login in Microsoft SQL Server.
2013-07-05 10:11:51Z Creating stored procedures for remote sql server. LoginName: 'domain\service account'.
2013-07-05 10:11:51Z Creating stored procedure 'CREATETEMPDBPERMISSIONS_AX-AOS02_01'.
2013-07-05 10:11:51Z Creating stored procedure '[dbo].[CREATESERVERSESSIONS]'.
2013-07-05 10:11:51Z Creating stored procedure '[dbo].[CREATEUSERSESSIONS]'.
2013-07-05 10:11:51Z Creating stored procedure '[dbo].[getNumInternal]'.
2013-07-05 10:11:51Z Creating stored procedure '[dbo].[sp_GetNextRecId]'.
2013-07-05 10:11:51Z isolation level = read committed snapshot
2013-07-05 10:11:51Z Adding account 'domain\service account' as a login in Microsoft SQL Server.
2013-07-05 10:11:51Z Adding account 'domain\service account' as a login in Microsoft SQL Server.
2013-07-05 10:11:51Z Granting AOS account access to database AXTech_model on server SQL Server
2013-07-05 10:12:56Z ******************************************************************************************************

2013-07-05 10:12:56Z Component installation task stopped due to an error.
2013-07-05 10:12:56Z ******************************************************************************************************
2013-07-05 10:12:56Z ******************************************************************************************************

2013-07-05 10:12:56Z The network path was not found.

2013-07-05 10:12:56Z ******************************************************************************************************
2013-07-05 10:12:56Z ******************************************************************************************************

2013-07-05 10:12:56Z System.IO.IOException: The network path was not found.
2013-07-05 10:12:56Z    at Microsoft.Win32.RegistryKey.Win32ErrorStatic(Int32 errorCode, String str)
2013-07-05 10:12:56Z    at Microsoft.Win32.RegistryKey.OpenRemoteBaseKey(RegistryHive hKey, String machineName)
2013-07-05 10:12:56Z    at System.Diagnostics.EventLog.GetEventLogRegKey(String machine, Boolean writable)
2013-07-05 10:12:56Z    at System.Diagnostics.EventLog.FindSourceRegistration(String source, String machineName, Boolean readOnly)
2013-07-05 10:12:56Z    at System.Diagnostics.EventLog.SourceExists(String source, String machineName)
2013-07-05 10:12:56Z    at System.Diagnostics.EventLog.VerifyAndCreateSource(String sourceName, String currentMachineName)
2013-07-05 10:12:56Z    at System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData)
2013-07-05 10:12:56Z    at System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type, Int32 eventID)
2013-07-05 10:12:56Z    at Microsoft.Dynamics.AX.Framework.Tools.ModelManagement.AxUtilEventLog.Log(EventLogEntryType eventLogType, AxUtilEventLogType logType, String message)
2013-07-05 10:12:56Z    at Microsoft.Dynamics.AX.Framework.Tools.ModelManagement.AxUtilEventLog.LogSuccess(AxUtil util, AxUtilEventLogType eventLogType, AxUtilAction action, IAxUtilEventLogEntry logEntry)
2013-07-05 10:12:56Z    at Microsoft.Dynamics.AX.Framework.Tools.ModelManagement.AxUtil.GrantPermission(String schemaName)
2013-07-05 10:12:56Z    at Microsoft.Dynamics.Setup.Support.SetupQueue.AOSInstaller.GrantAOSAccounttoDatabase(String databaseServer, String databaseName)
2013-07-05 10:12:56Z    at Microsoft.Dynamics.Setup.Support.SetupQueue.AOSInstaller.AosPreInstallActions()
2013-07-05 10:12:56Z    at Microsoft.Dynamics.Setup.Support.SetupQueue.AOSInstaller.PerformWork()
2013-07-05 10:12:56Z    at Microsoft.Dynamics.Setup.Support.SetupQueue.InstallationClass.DoWork(Object sender, DoWorkEventArgs e)
2013-07-05 10:12:56Z    at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

2013-07-05 10:12:56Z ******************************************************************************************************
2013-07-05 10:12:57Z S260FinishedInfo


2013-07-05 10:14:14Z  === Setup was completed successfully.
2013-07-05 10:14:14Z  === Setup logging ended: 7/5/2013 10:14:14 AM ErrorLevel/ExitCode: '0' ===



No comments:

Post a Comment

Feel free to post your comments! Comments will be moderated