Closed tfenster closed 5 years ago
And the same for
docker run -e accept_eula=y -e ExitOnError=n mcr.microsoft.com/businesscentral/onprem:rtm-ltsc2019
And also for bcsandobx. That seems too much, I guess there is something wrong with my Windows Server 2019. Have you by chance seen something like this before?
Have not seen this before - looking at the stack trace, it seems to be when it compiles the application and creates assemblies for app execution. Are your Windows Server 2019 under any security policies?
@tfenster Have you tried hyper-v isolation on the same config set?
@Koubek I unfortunately can't test that as in our datacenter nested virt is disabled
Have not seen this before - looking at the stack trace, it seems to be when it compiles the application and creates assemblies for app execution. Are your Windows Server 2019 under any security policies?
Might be possible. Should be the same as Server 2016, but with the amount of possible settings, I wouldn't rule out anything. The question is how to find the bad one...
@Koubek I unfortunately can't test that as in our datacenter nested virt is disabled
Really? So you don't use Azure? ;)
@Koubek Depends on the use case ;)
@freddydk This is a really weird one. If I start the container with ExitOnError=N
, wait for the error to happen, get a session in the container and then start the instance, I can successfully create a new user (which should be the exact same thing happening at the line where it breaks on regular startup), assign SUPER and then log in
PS C:\> C:\Run\Prompt.ps1
Welcome to the NAV Container PowerShell prompt
PS C:\Run> start-navserverinstance NAV
ServerInstance : MicrosoftDynamicsNavServer$NAV
DisplayName : Dynamics 365 Business Central Server [NAV]
State : Running
ServiceAccount : NT AUTHORITY\SYSTEM
Version : 13.0.25924.0
Default : True
PS C:\Run> $sec = Read-Host -AsSecureString
************
PS C:\Run> new-navserveruser -UserName admin -Password $sec NAV
PS C:\Run> new-navserveruserpermissionset -PermissionSetId SUPER -UserName admin NAV
PS C:\Run>
Can you think of anything that happens differently between the very first startup and later startups?
@tfenster The errors being logged are actually being logged since the failure, right? Then could you provide the initial log entries to see what happened before (to see the first error when the NST went down)?
@Koubek Didn't think about that but will give it a try. I am open for anything... :) Maybe some stupid password complexity stuff.
However I found a workaround, although that actually is even more puzzling, at least to me: If I overwrite SetupNavUsers.ps1 with the following, the container successfully starts
Script SetupNavUsers.ps1
Write-Host "Restarting instance"
Restart-NAVServerInstance NAV | Out-Null
. (Join-Path $runPath $MyInvocation.MyCommand.Name)
Output
PS C:\temp> docker run -e accept_eula=y -e ExitOnError=N -v c:\temp:c:\run\my --rm mcr.microsoft.com/businesscentral/onprem:latest-ltsc2019
Initializing...
Starting Container
Hostname is 687503b02d7d
PublicDnsName is 687503b02d7d
Using NavUserPassword Authentication
Starting Local SQL Server
Starting Internet Information Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint AC9AEC3BA4032ACA64E6788A44C7EB63BB03C569
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Creating DotNetCore Web Server Instance
Creating http download site
Creating Windows user admin
Setting SA Password and enabling SA
Creating admin as SQL User and add to sysadmin
Restarting instance
Creating SUPER user
Container IP Address: 172.21.205.108
Container Hostname : 687503b02d7d
Container Dns Name : 687503b02d7d
Web Client : https://687503b02d7d/NAV/
Admin Username : admin
Admin Password : Ryco2151
Dev. Server : https://687503b02d7d
Dev. ServerInstance : NAV
Files:
http://687503b02d7d:8080/al-2.0.56865.vsix
http://687503b02d7d:8080/certificate.cer
Initialization took 144 seconds
Ready for connections!
To make sure, nothing changed on the host, I also ran without the -v volume again, and it again failed
And just empty "my" folder... (no overrides at all)? Maybe something related???
How do you mean? Running with just a mapped my folder, but no scripts inside?
Running with an explicit password results in the same problem
PS C:\temp> docker run -e accept_eula=y -e ExitOnError=N -e username=Verwalter -e Password=PepsiMax4Ever! --rm mcr.microsoft.com/businesscentral/onprem:latest-ltsc2019
Initializing...
Starting Container
Hostname is cb1bdbb0cddd
PublicDnsName is cb1bdbb0cddd
Using NavUserPassword Authentication
Starting Local SQL Server
Starting Internet Information Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint 7CB813F7E7BDFF44A390012F41FAF795908691AE
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Creating DotNetCore Web Server Instance
Creating http download site
Creating Windows user Verwalter
Setting SA Password and enabling SA
Creating Verwalter as SQL User and add to sysadmin
Creating SUPER user
ServerInstance 'MicrosoftDynamicsNavServer$NAV' is not running.
at <ScriptBlock>, C:\Run\SetupNavUsers.ps1: line 20
at <ScriptBlock>, C:\Run\navstart.ps1: line 175
at <ScriptBlock>, C:\Run\start.ps1: line 115
at <ScriptBlock>, <No file>: line 1
TimeGenerated : 12/9/2018 11:12:41 PM
EntryType : Error
Message : Server instance: NAV
Category: Extensions
ClientSessionId: 00000000-0000-0000-0000-000000000000
ClientActivityId: dd4dd094-1db9-4631-a008-cbaa1c1f5471
ServerSessionUniqueId: 00000000-0000-0000-0000-000000000000
ServerActivityId: 94587bc1-8d0a-492a-9b47-87235990da9a
EventTime: 12/09/2018 22:12:41
Message (NavClientIOException): This message had personal data
removed. The original may still be in transient telemetry.
Find it using the transientTelemetryId.
ParentException: NavClientIOException
A required privilege is not held by the client.
...
Those are the logs (System and Application), latest 30 entries. You can see the NAV server coming up and then failing, but at least I can't see anything like a reason: latest-30-application-log.txt, latest-30-system-log.txt
Giving up for today, absolutely can't figure out how a restart can fix whatever is causing the problem. I know "have you tried turning it off and on again?" is one of the pillars of IT, but that one is really strange
Yes, just an empty folder being mapped as "my" folder. Just a shot...
Could you try to disable UAC on the host?
@freddydk Tried with both the EnableLUA registry key set to 0 (and a restart) and the graphical thing where you can pull the slider down, both with no effect to the problem
@Koubek An empty folder doesn't change the result
PS C:\temp> docker run -e accept_eula=y -e ExitOnError=N -v c:\temp\empty:c:\run\my --rm mcr.microsoft.com/businesscentral/onprem:latest-ltsc2019
Initializing...
Starting Container
Hostname is c2fd5c50e54e
PublicDnsName is c2fd5c50e54e
Using NavUserPassword Authentication
Starting Local SQL Server
Starting Internet Information Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint 2B95A4423879162510A1AE1B955276951CFD2D23
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Creating DotNetCore Web Server Instance
Creating http download site
Creating Windows user admin
Setting SA Password and enabling SA
Creating admin as SQL User and add to sysadmin
Creating SUPER user
ServerInstance 'MicrosoftDynamicsNavServer$NAV' is not running.
at <ScriptBlock>, C:\Run\SetupNavUsers.ps1: line 20
at <ScriptBlock>, C:\Run\navstart.ps1: line 175
at <ScriptBlock>, C:\Run\start.ps1: line 115
at <ScriptBlock>, <No file>: line 1
TimeGenerated : 12/9/2018 11:25:58 PM
EntryType : Error
Message : Server instance: NAV
Category: Extensions
ClientSessionId: 00000000-0000-0000-0000-000000000000
ClientActivityId: d264ea00-7b84-40b0-9205-81d2d9db267d
ServerSessionUniqueId: 00000000-0000-0000-0000-000000000000
ServerActivityId: 81876a40-9c30-461c-af4a-c5ca6ac42c76
EventTime: 12/09/2018 22:25:58
Message (NavClientIOException): This message had personal data
removed. The original may still be in transient telemetry.
Find it using the transientTelemetryId.
ParentException: NavClientIOException
A required privilege is not held by the client.
Somewhat happy about that as it would have really scared me it that had fixed it ;)
In the setupnavusers override - could you try to see if the NAV Server is running before doing the restart-service. I am pretty sure that it is stopped - and we need to figure out why. Could you also dump (Get-CimInstance Win32_OperatingSystem) | fl and (Get-CimInstance Win32_ComputerSystem) | fl here
I am pretty sure that the failing piece is when it tries to compile the app. Maybe have a look in C:\ProgramData\Microsoft\Microsoft Dynamics NAV\130\Server\MicrosoftDynamicsNavServer$NAV\source in the container to see how far it got? You could also start with -e customnavsettings=EnableDebugging=true - to make sure the files aren't deleted.
I've changed my script so that it now looks like this
Write-Host "Restarting instance"
Get-NAVServerInstance NAV
Restart-NAVServerInstance NAV | Out-Null
. (Join-Path $runPath $MyInvocation.MyCommand.Name)
At least it looks like instance is running before the restart
PS C:\temp> docker run -e accept_eula=y -e ExitOnError=N -v c:\temp:c:\run\my --rm mcr.microsoft.com/businesscentral/onprem:latest-ltsc2019
Initializing...
Starting Container
Hostname is 1a2d9f177568
PublicDnsName is 1a2d9f177568
Using NavUserPassword Authentication
Starting Local SQL Server
Starting Internet Information Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint 4178D9BE2F4DD98FB486D165C7D68673441D402C
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Creating DotNetCore Web Server Instance
Creating http download site
Creating Windows user admin
Setting SA Password and enabling SA
Creating admin as SQL User and add to sysadmin
Restarting instance
ServerInstance : MicrosoftDynamicsNavServer$NAV
DisplayName : Dynamics 365 Business Central Server [NAV]
State : Running
ServiceAccount : NT AUTHORITY\SYSTEM
Version : 13.0.25924.0
Default : True
Creating SUPER user
Container IP Address: 172.21.194.79
Container Hostname : 1a2d9f177568
Container Dns Name : 1a2d9f177568
Web Client : https://1a2d9f177568/NAV/
Admin Username : admin
Admin Password : Huqa1980
Dev. Server : https://1a2d9f177568
Dev. ServerInstance : NAV
Files:
http://1a2d9f177568:8080/al-2.0.56865.vsix
http://1a2d9f177568:8080/certificate.cer
Initialization took 149 seconds
Ready for connections!
The logs look like this (I've removed the serial numbers. Not 100% sure, but it doesn't feel like a good idea to share those ;) ) : log_host.txt, log_container.txt
Seems to be a timing issue. I changed my script like this
Write-Host "Restarting instance"
Start-Sleep -seconds 60
Get-NAVServerInstance NAV
Restart-NAVServerInstance NAV | Out-Null
. (Join-Path $runPath $MyInvocation.MyCommand.Name)
And now the instance is stopped
PS C:\temp> docker run -e accept_eula=y -e ExitOnError=N -v c:\temp:c:\run\my --rm mcr.microsoft.com/businesscentral/onprem:latest-ltsc2019
Initializing...
Starting Container
Hostname is e3cbf6b599da
PublicDnsName is e3cbf6b599da
Using NavUserPassword Authentication
Starting Local SQL Server
Starting Internet Information Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint 24A81A5262ED49A88C15D2D93BA5B55DEF2A5AF2
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Creating DotNetCore Web Server Instance
Creating http download site
Creating Windows user admin
Setting SA Password and enabling SA
Creating admin as SQL User and add to sysadmin
Restarting instance
ServerInstance : MicrosoftDynamicsNavServer$NAV
DisplayName : Dynamics 365 Business Central Server [NAV]
State : Stopped
ServiceAccount : NT AUTHORITY\SYSTEM
Version : 13.0.25924.0
Default : True
Creating SUPER user
Container IP Address: 172.21.200.94
Container Hostname : e3cbf6b599da
Container Dns Name : e3cbf6b599da
Web Client : https://e3cbf6b599da/NAV/
Admin Username : admin
Admin Password : Quzy4019
Dev. Server : https://e3cbf6b599da
Dev. ServerInstance : NAV
Files:
http://e3cbf6b599da:8080/al-2.0.56865.vsix
http://e3cbf6b599da:8080/certificate.cer
Initialization took 181 seconds
Ready for connections!
Probably already in the process of crashing but not crashed yet in my first try
And the generation of .cs files (app compilation) is running in the background - still think that is where we need to look.
In your first log - the IO errors came at 01:13 and the Service tier stopped at 01:33
Just started with the debug flag and am waiting for the crash
Here are the sources: https://vincienergies-my.sharepoint.com/:u:/g/personal/tobias_fenster_vinci-energies_net/EUllboRWGG5JtFXzaP2jr3UBqLPxIWRXNTYOV0a-hj-fFg?e=ZWZKKG
How can I find the problematic one with no reference in the logs? What still bothers me is why it would work on the second start, but let's see
In that dump - only some codeunits are there and a lot of the other objects are empty. The one that I just spun up has a lot more. Will go to bed and think about it, right now I am out of options (except we know that this is where it fails)
And you are running a standard container (no added bak file or like)?
yes, really just a docker run with accept_eula and ExitOnError to keep it running: docker run -e accept_eula=y -e ExitOnError=n mcr.microsoft.com/businesscentral/onprem:ltsc2019
Thanks for your help
total longshot - you didn't move the C:\ProgramData\Docker\windowsfilter to a different location, did you? Is the docker installation 100% standard?
BTW - I assume that your "fix" to restart the service tier before adding the user only fixes things temporarily - when you start using it, I expect that it will stop the service tier shortly after, right?
For the installation: It was 100% standard but then I suspected that maybe the ProgramData folder was having some special restrictions and therefore moved the whole graph to c:\dockerfiles. That didn't change anything and I moved it back, still the same result. Other then that it is a plain installation of Docker EE 18.09.0 using the standard PowerShell way.
For the restart fix: Until now I haven't really used the container with the restarted NST but I'll keep it running and see what happens. It should break pretty soon as he C# compilation should be running in the background and get to the same error again, right?
And maybe as additional info: I have a second Server 2019, same standard installation, same problem. I still am quite sure that it is some setting on our side, but it doesn't seem to be a fluke of the one VM
Yes, it should fail on first connect - or it should successfully compile things on demand. (2nd would be strange) Could you send me the get-ciminstance win32_operatingsystem and computersysem output with fl * in an email? I don't know what I am looking for except for differences.
You have disables antivirus right?
Yes, tried that as well, disabled Defender by deactivating all checks (haven't found a big "disable Defender" switch though)
Forget this, I can see it is en-us: "Looking at the computerinfo - the only thing that springs into mind is, that your server is in german - I have only been running on en-us servers. Is it possible for you to get a server setup with en-us?"
Your locale is 0407 - mine is 0409 - have a hard time seeing that that should make a difference - but maybe you should try to set regional settings all over and see.
Another thing - try get-service and send me the output in an email - again just for comparison
The container with the restarted instance is still fine after 30 minutes. I can connect and post invoices. Also the C:\ProgramData\Microsoft\Microsoft Dynamics NAV\130\Server\MicrosoftDynamicsNavServer$NAV\source folder now is way bigger, the zipped content now is 30MB compared to 9MB when it crashes. So it seems that on second startup it successfully compiles the whole application...
This is getting more and more strange... The eventlog from the container - does it state have a log entry (information) saying something like: The business assemblies for events have been compiled and loaded. The operation took 48177 milliseconds and contained 369 application objects.
Yes, but it has that even when it fails. If you check the original file here latest-30-application-log.txt, at 11:00:57 the "compiled" message appears
Index : 733
EntryType : Information
InstanceId : 201
Message : Server instance: NAV
Tenant:
The business assemblies for events have been compiled and loaded. The operation took 61990 milliseconds and contained 369 application objects.
Category : (12)
CategoryNumber : 12
ReplacementStrings : {Server instance: NAV
Tenant:
The business assemblies for events have been compiled and loaded. The operation took 61990 milliseconds and contained 369 application objects.}
Source : MicrosoftDynamicsNavServer$NAV
TimeGenerated : 12/9/2018 11:00:57 PM
TimeWritten : 12/9/2018 11:00:57 PM
UserName :
Then the "application was mounted" message appears and 16 seconds later at 11:01:13 the first IO error happens
Category : (13)
CategoryNumber : 13
ReplacementStrings : {Server instance: NAV
Tenant ID:
User:
Type: System.IO.IOException
Message:
A required privilege is not held by the client.
StackTrace:
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean
bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at Microsoft.Dynamics.Nav.Runtime.AssemblyGetter.DoWriteTheFile(String sourceFileName, String source, Int64 objectTimestamp)
Source: mscorlib
HResult: -2147023582
StackTrace:
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean
bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at Microsoft.Dynamics.Nav.Runtime.AssemblyGetter.DoWriteTheFile(String sourceFileName, String source, Int64 objectTimestamp)
}
Source : MicrosoftDynamicsNavServer$NAV
TimeGenerated : 12/9/2018 11:01:13 PM
TimeWritten : 12/9/2018 11:01:13 PM
UserName :
I am now at locale 0409, but the NST still breaks
PS C:\Windows\system32> (Get-CimInstance Win32_OperatingSystem) | fl *
Status : OK
Name : Microsoft Windows Server 2019
[...]
Locale : 0409
[...]
PS C:\Windows\system32> docker run -e accept_eula=y -e ExitOnError=N mcr.microsoft.com/businesscentral/onprem:latest-ltsc2019
Initializing...
[...]
Creating admin as SQL User and add to sysadmin
Creating SUPER user
ServerInstance 'MicrosoftDynamicsNavServer$NAV' is not running.
at <ScriptBlock>, C:\Run\SetupNavUsers.ps1: line 20
at <ScriptBlock>, C:\Run\navstart.ps1: line 175
at <ScriptBlock>, C:\Run\start.ps1: line 115
at <ScriptBlock>, <No file>: line 1
TimeGenerated : 12/10/2018 8:39:08 AM
EntryType : Error
Message : Server instance: NAV
Category: Extensions
ClientSessionId: 00000000-0000-0000-0000-000000000000
ClientActivityId: b3730bc3-b7f2-4152-9e26-971c38a73f5e
ServerSessionUniqueId: 00000000-0000-0000-0000-000000000000
ServerActivityId: c354eeba-f58d-42e8-b66a-da699ba59a87
EventTime: 12/10/2018 07:39:08
Message (NavClientIOException): This message had personal data
removed. The original may still be in transient telemetry.
Find it using the transientTelemetryId.
ParentException: NavClientIOException
A required privilege is not held by the client.
Could you try to set CompileBusinessApplicationAtStartup to false in CustomSettings.config - then it will compile on demand.
Same result. Maybe something else is breaking in parallel and this just coincidentally stops compiling the business application?
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\Windows\system32> docker run -e accept_eula=y -e ExitOnError=N -e customnavsettings=CompileBusinessApplicationAtStartup=false --rm mcr.microsoft.com/businesscentral/onprem:latest-ltsc2019
Initializing...
Starting Container
Hostname is c491e58a48e3
PublicDnsName is c491e58a48e3
Using NavUserPassword Authentication
Starting Local SQL Server
Starting Internet Information Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint CA747A3290CEE2EA0CC4F5E83AF93766DD0C0A5B
Modifying Service Tier Config File with Instance Specific Settings
Modifying Service Tier Config File with settings from environment variable
Setting CompileBusinessApplicationAtStartup to false
Starting Service Tier
Creating DotNetCore Web Server Instance
Creating http download site
Creating Windows user admin
Setting SA Password and enabling SA
Creating admin as SQL User and add to sysadmin
Creating SUPER user
ServerInstance 'MicrosoftDynamicsNavServer$NAV' is not running.
at <ScriptBlock>, C:\Run\SetupNavUsers.ps1: line 20
at <ScriptBlock>, C:\Run\navstart.ps1: line 175
at <ScriptBlock>, C:\Run\start.ps1: line 115
at <ScriptBlock>, <No file>: line 1
TimeGenerated : 12/10/2018 10:14:06 AM
EntryType : Error
Message : Server instance: NAV
Category: Extensions
ClientSessionId: 00000000-0000-0000-0000-000000000000
ClientActivityId: bef06e36-bd1b-4a75-8391-5c47aaea939f
ServerSessionUniqueId: 00000000-0000-0000-0000-000000000000
ServerActivityId: 40c62ce0-3e51-4a58-8cba-65c0049280e0
EventTime: 12/10/2018 09:14:06
Message (NavClientIOException): This message had personal data
removed. The original may still be in transient telemetry.
Find it using the transientTelemetryId.
ParentException: NavClientIOException
A required privilege is not held by the client.
ExceptionStackTrace:
at Microsoft.Dynamics.Nav.Runtime.TempPathHousekeeper.MapClr
ExceptionAndRethrow(Exception exception)
at Microsoft.Dynamics.Nav.Runtime.AssemblyGetter.DoWriteTheF
ile(String sourceFileName, String source, Int64
objectTimestamp)
at Microsoft.Dynamics.Nav.Runtime.AssemblyGetter.GetNavAppGr
oupAssemblyBucket(NavAppGroup appGroup)
at Microsoft.Dynamics.Nav.Runtime.AssemblyGetter.InitializeN
avAppGroupAssembly(NavAppGroup appGroup,
InitializeAppGroupProfiler profiler)
at Microsoft.Dynamics.Nav.Runtime.AssemblyGetter.CompileNavA
ppGroup(NavAppGroup appGroup, InitializeAppGroupProfiler
profiler)
InnerException:
RootException: IOException
ExceptionStackTrace:
at System.IO.__Error.WinIOError(Int32 errorCode, String
maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode,
FileAccess access, Int32 rights, Boolean useRights, FileShare
share, Int32 bufferSize, FileOptions options,
SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean
bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode,
FileAccess access, FileShare share, Int32 bufferSize,
FileOptions options)
at Microsoft.Dynamics.Nav.Runtime.AssemblyGetter.DoWriteTheF
ile(String sourceFileName, String source, Int64
objectTimestamp)
CallerStackTrace:
at Microsoft.Dynamics.Nav.Diagnostic.NavDiagnostics.ComposeA
ndSendExceptionTraceTag(String tag, Category category,
Exception exception, DiagnosticParameter message, Verbosity
verbosity, Guid clientSessionId, Guid clientActivityId, String
diagnosticsContext, Boolean forceLog)
at Microsoft.Dynamics.Nav.Diagnostic.NavDiagnostics.SendExce
ptionTag(String tag, Category category, Exception exception,
Verbosity verbosity, DiagnosticParameter message, String
diagnosticsContext, Boolean forceLog)
at Microsoft.Dynamics.Nav.Runtime.AssemblyGetter.CompileNavA
ppGroup(NavAppGroup appGroup, InitializeAppGroupProfiler
profiler)
at Microsoft.Dynamics.Nav.Runtime.NCLMetadata.InitializeAppG
roupAssembly(NavAppGroup appGroup, InitializeAppGroupProfiler
profiler)
at Microsoft.Dynamics.Nav.Runtime.NCLMetadata.InitializeAppG
roup(NavAppGroup appGroup)
at Microsoft.Dynamics.Nav.Runtime.NCLMetadata.InitializeAppG
roup(NavAppGroup appGroup)
at Microsoft.Dynamics.Nav.Runtime.Apps.NavAppGroupUpdater.Up
dateGroupForChangedTenant(NavTenant tenant)
at Microsoft.Dynamics.Nav.Runtime.NavTenantCollection.Initia
lizeAppsForTenant(NavTenant tenant)
at Microsoft.Dynamics.Nav.Runtime.NavTenantCollection.Initia
lizeTenant(NavTenant tenant, NavTenantSettings tenantSettings,
Boolean overwriteTenantIdInDatabase, Boolean
verifyDatabaseConnection, Boolean ensureDatabaseExclusiveState)
at Microsoft.Dynamics.Nav.Runtime.NavTenantCollection.AddTen
ant(NavTenantMountingParameters mountingParameters)
at Microsoft.Dynamics.Nav.Runtime.NavTenantCollection.MountD
efaultTenant(String databaseServerName, String databaseName,
String databaseUserName, ProtectedDatabasePassword
databasePassword, EncryptionProvider encryptionProvider,
AzureKeyVaultSettings azureKeyVaultSettings, Boolean
verifyServerInstanceKey)
at Microsoft.Dynamics.Nav.Runtime.NavTenantCollection.AddSin
gleLegacyTenant(String databaseServerName, String
databaseName, String databaseUserName,
ProtectedDatabasePassword databasePassword, EncryptionProvider
encryptionProvider, AzureKeyVaultSettings
azureKeyVaultSettings)
at Microsoft.Dynamics.Nav.Runtime.NavTenantCollection.Config
ureTenants(ServerUserSettings settings, String encryptionKey)
at Microsoft.Dynamics.Nav.Runtime.NavTaskFactory.<>c__Displa
yClass11_0.<StartNewTask>b__0()
at System.Threading.Tasks.Task.Execute()
at
System.Threading.ExecutionContext.RunInternal(ExecutionContext
executionContext, ContextCallback callback, Object state,
Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state,
Boolean preserveSyncCtx)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task&
currentTaskSlot)
at System.Threading.Tasks.Task.ExecuteEntry(Boolean
bPreventDoubleExecution)
at
System.Threading.ExecutionContext.RunInternal(ExecutionContext
executionContext, ContextCallback callback, Object state,
Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state,
Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart(Object obj)
ProcessId: 6604
Tag: 0000079
ThreadId: 11
CounterInformation:
TimeGenerated : 12/10/2018 10:14:06 AM
EntryType : Error
Message : Server instance: NAV
Category: Extensions
ClientSessionId: 00000000-0000-0000-0000-000000000000
ClientActivityId: bef06e36-bd1b-4a75-8391-5c47aaea939f
ServerSessionUniqueId: 00000000-0000-0000-0000-000000000000
ServerActivityId: 40c62ce0-3e51-4a58-8cba-65c0049280e0
EventTime: 12/10/2018 09:14:06
Message (NavClientIOException): ParentException:
NavClientIOException
A required privilege is not held by the client.
ExceptionStackTrace:
at Microsoft.Dynamics.Nav.Runtime.TempPathHousekeeper.MapClr
ExceptionAndRethrow(Exception exception)
at Microsoft.Dynamics.Nav.Runtime.AssemblyGetter.DoWriteTheF
ile(String sourceFileName, String source, Int64
objectTimestamp)
at Microsoft.Dynamics.Nav.Runtime.AssemblyGetter.GetNavAppGr
oupAssemblyBucket(NavAppGroup appGroup)
at Microsoft.Dynamics.Nav.Runtime.AssemblyGetter.InitializeN
avAppGroupAssembly(NavAppGroup appGroup,
InitializeAppGroupProfiler profiler)
at Microsoft.Dynamics.Nav.Runtime.AssemblyGetter.CompileNavA
ppGroup(NavAppGroup appGroup, InitializeAppGroupProfiler
profiler)
InnerException:
RootException: IOException
A required privilege is not held by the client.
ExceptionStackTrace:
at System.IO.__Error.WinIOError(Int32 errorCode, String
maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode,
FileAccess access, Int32 rights, Boolean useRights, FileShare
share, Int32 bufferSize, FileOptions options,
SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean
bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode,
FileAccess access, FileShare share, Int32 bufferSize,
FileOptions options)
at Microsoft.Dynamics.Nav.Runtime.AssemblyGetter.DoWriteTheF
ile(String sourceFileName, String source, Int64
objectTimestamp)
CallerStackTrace:
at Microsoft.Dynamics.Nav.Diagnostic.NavDiagnostics.ComposeA
ndSendExceptionTraceTag(String tag, Category category,
Exception exception, DiagnosticParameter message, Verbosity
verbosity, Guid clientSessionId, Guid clientActivityId, String
diagnosticsContext, Boolean forceLog)
at Microsoft.Dynamics.Nav.Diagnostic.NavDiagnostics.SendExce
ptionTag(String tag, Category category, Exception exception,
Verbosity verbosity, DiagnosticParameter message, String
diagnosticsContext, Boolean forceLog)
at Microsoft.Dynamics.Nav.Runtime.AssemblyGetter.CompileNavA
ppGroup(NavAppGroup appGroup, InitializeAppGroupProfiler
profiler)
at Microsoft.Dynamics.Nav.Runtime.NCLMetadata.InitializeAppG
roupAssembly(NavAppGroup appGroup, InitializeAppGroupProfiler
profiler)
at Microsoft.Dynamics.Nav.Runtime.NCLMetadata.InitializeAppG
roup(NavAppGroup appGroup)
at Microsoft.Dynamics.Nav.Runtime.NCLMetadata.InitializeAppG
roup(NavAppGroup appGroup)
at Microsoft.Dynamics.Nav.Runtime.Apps.NavAppGroupUpdater.Up
dateGroupForChangedTenant(NavTenant tenant)
at Microsoft.Dynamics.Nav.Runtime.NavTenantCollection.Initia
lizeAppsForTenant(NavTenant tenant)
at Microsoft.Dynamics.Nav.Runtime.NavTenantCollection.Initia
lizeTenant(NavTenant tenant, NavTenantSettings tenantSettings,
Boolean overwriteTenantIdInDatabase, Boolean
verifyDatabaseConnection, Boolean ensureDatabaseExclusiveState)
at Microsoft.Dynamics.Nav.Runtime.NavTenantCollection.AddTen
ant(NavTenantMountingParameters mountingParameters)
at Microsoft.Dynamics.Nav.Runtime.NavTenantCollection.MountD
efaultTenant(String databaseServerName, String databaseName,
String databaseUserName, ProtectedDatabasePassword
databasePassword, EncryptionProvider encryptionProvider,
AzureKeyVaultSettings azureKeyVaultSettings, Boolean
verifyServerInstanceKey)
at Microsoft.Dynamics.Nav.Runtime.NavTenantCollection.AddSin
gleLegacyTenant(String databaseServerName, String
databaseName, String databaseUserName,
ProtectedDatabasePassword databasePassword, EncryptionProvider
encryptionProvider, AzureKeyVaultSettings
azureKeyVaultSettings)
at Microsoft.Dynamics.Nav.Runtime.NavTenantCollection.Config
ureTenants(ServerUserSettings settings, String encryptionKey)
at Microsoft.Dynamics.Nav.Runtime.NavTaskFactory.<>c__Displa
yClass11_0.<StartNewTask>b__0()
at System.Threading.Tasks.Task.Execute()
at
System.Threading.ExecutionContext.RunInternal(ExecutionContext
executionContext, ContextCallback callback, Object state,
Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state,
Boolean preserveSyncCtx)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task&
currentTaskSlot)
at System.Threading.Tasks.Task.ExecuteEntry(Boolean
bPreventDoubleExecution)
at
System.Threading.ExecutionContext.RunInternal(ExecutionContext
executionContext, ContextCallback callback, Object state,
Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state,
Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart(Object obj)
ProcessId: 6604
Tag: 0000079
ThreadId: 11
CounterInformation:
TimeGenerated : 12/10/2018 10:14:06 AM
EntryType : Error
Message : Server instance: NAV
Tenant ID:
User:
Type: System.IO.IOException
Message:
A required privilege is not held by the client.
StackTrace:
at System.IO.__Error.WinIOError(Int32 errorCode, String
maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode,
FileAccess access, Int32 rights, Boolean useRights, FileShare
share, Int32 bufferSize, FileOptions options,
SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean
bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode,
FileAccess access, FileShare share, Int32 bufferSize,
FileOptions options)
at Microsoft.Dynamics.Nav.Runtime.AssemblyGetter.DoWriteTh
eFile(String sourceFileName, String source, Int64
objectTimestamp)
Source: mscorlib
HResult: -2147023582
StackTrace:
at System.IO.__Error.WinIOError(Int32 errorCode, String
maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode,
FileAccess access, Int32 rights, Boolean useRights, FileShare
share, Int32 bufferSize, FileOptions options,
SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean
bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode,
FileAccess access, FileShare share, Int32 bufferSize,
FileOptions options)
at Microsoft.Dynamics.Nav.Runtime.AssemblyGetter.DoWriteTh
eFile(String sourceFileName, String source, Int64
objectTimestamp)
Could you try to run a NAV 2016 container on this machine?
2016 works:
PS C:\Windows\system32> docker run -e accept_eula=y -e ExitOnError=N --rm microsoft/dynamics-nav:2016-ltsc2019
Initializing...
Starting Container
Hostname is a63423da9cc3
PublicDnsName is a63423da9cc3
Using NavUserPassword Authentication
Starting Local SQL Server
Starting Internet Information Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint E89AC46C32E72C1B88D0FC47675641E2DC0192D1
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Creating Web Site
Creating Web Server Instance
Creating http download site
Creating Windows user admin
Setting SA Password and enabling SA
Creating admin as SQL User and add to sysadmin
Creating SUPER user
Container IP Address: 172.24.233.164
Container Hostname : a63423da9cc3
Container Dns Name : a63423da9cc3
Web Client : https://a63423da9cc3/NAV/WebClient/
Admin Username : admin
Admin Password : Haka4950
Files:
http://a63423da9cc3:8080/certificate.cer
Initialization took 89 seconds
Ready for connections!
2017 also works
PS C:\Windows\system32> docker run -e accept_eula=y -e ExitOnError=N --rm microsoft/dynamics-nav:2017-ltsc2019
Initializing...
Starting Container
Hostname is c2286e46510f
PublicDnsName is c2286e46510f
Using NavUserPassword Authentication
Starting Local SQL Server
Starting Internet Information Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint A014765D66F176ECA62366C66A42015D69112F34
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Creating Web Site
Creating Web Server Instance
Creating http download site
Creating Windows user admin
Setting SA Password and enabling SA
Creating admin as SQL User and add to sysadmin
Creating SUPER user
Container IP Address: 172.24.233.123
Container Hostname : c2286e46510f
Container Dns Name : c2286e46510f
Web Client : https://c2286e46510f/NAV/WebClient/
Admin Username : admin
Admin Password : Pymo0059
Files:
http://c2286e46510f:8080/certificate.cer
Initialization took 87 seconds
Ready for connections!
Same for 2018
PS C:\Windows\system32> docker run -e accept_eula=y -e ExitOnError=N --rm microsoft/dynamics-nav:2018-ltsc2019
Initializing...
Starting Container
Hostname is 6a5956d7e11f
PublicDnsName is 6a5956d7e11f
Using NavUserPassword Authentication
Starting Local SQL Server
Starting Internet Information Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint 3A42FA4D1D6460B38AAC571C921B882A78F17267
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Creating DotNetCore Web Server Instance
Creating http download site
Creating Windows user admin
Setting SA Password and enabling SA
Creating admin as SQL User and add to sysadmin
Creating SUPER user
Container IP Address: 172.24.237.171
Container Hostname : 6a5956d7e11f
Container Dns Name : 6a5956d7e11f
Web Client : https://6a5956d7e11f/NAV/
Admin Username : admin
Admin Password : Gawo2147
Dev. Server : https://6a5956d7e11f
Dev. ServerInstance : NAV
Files:
http://6a5956d7e11f:8080/al-0.12.28462.vsix
http://6a5956d7e11f:8080/certificate.cer
Initialization took 119 seconds
Ready for connections!
BC still fails
Sorry to taking you through so many things - should we try to start with -e WebClient=N and -e httpsite=N
Same result
PS C:\Windows\system32> docker run -e accept_eula=y -e ExitOnError=N -e WebClient=n -e httpsite=n --rm mcr.microsoft.com/businesscentral/onprem:latest-ltsc2019
Initializing...
Starting Container
Hostname is 2dd42d7291af
PublicDnsName is 2dd42d7291af
Using NavUserPassword Authentication
Starting Local SQL Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint 4BD9B8FA08B2E8F85DE4C9D09FD0E111B9D73D58
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Creating Windows user admin
Setting SA Password and enabling SA
Creating admin as SQL User and add to sysadmin
Creating SUPER user
ServerInstance 'MicrosoftDynamicsNavServer$NAV' is not running.
at <ScriptBlock>, C:\Run\SetupNavUsers.ps1: line 20
at <ScriptBlock>, C:\Run\navstart.ps1: line 175
at <ScriptBlock>, C:\Run\start.ps1: line 115
at <ScriptBlock>, <No file>: line 1
TimeGenerated : 12/10/2018 11:03:49 AM
EntryType : Error
Message : Server instance: NAV
Category: Extensions
ClientSessionId: 00000000-0000-0000-0000-000000000000
ClientActivityId: 8bd27923-71d4-447c-981c-b88c3c11345e
ServerSessionUniqueId: 00000000-0000-0000-0000-000000000000
ServerActivityId: e3daed13-c05e-47b3-85e6-f825486224ab
EventTime: 12/10/2018 10:03:49
Message (NavClientIOException): This message had personal data
removed. The original may still be in transient telemetry.
Find it using the transientTelemetryId.
ParentException: NavClientIOException
A required privilege is not held by the client.
Happy to test whatever could possibly help as I still think this is something weird on our side
And there is no info in the event log about which file it is trying to access or write?
Could you try the latest bcinsider bcsandbox-master? And also bconprem : rtm
Thanks
I can't find anything but might be missing something. Here are the latest 100 events in Application, System and Security. Let me know if you want me to check anything else
RTM also crashes but shows an error that seems to indicate to me that this is in fact an extension problem:
PS C:\temp> docker run -e accept_eula=y -e ExitOnError=N -e WebClient=n -e httpsite=n --rm mcr.microsoft.com/businesscentral/onprem:rtm-ltsc2019
Initializing...
Starting Container
Hostname is a3ba785b1559
PublicDnsName is a3ba785b1559
Using NavUserPassword Authentication
Starting Local SQL Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint 1B5670D25B17881CF3F6293AF5A9ABE42D9F9DE3
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Creating Windows user admin
Setting SA Password and enabling SA
Creating admin as SQL User and add to sysadmin
Creating SUPER user
ServerInstance 'MicrosoftDynamicsNavServer$NAV' is not running.
at <ScriptBlock>, C:\Run\SetupNavUsers.ps1: line 20
at <ScriptBlock>, C:\Run\navstart.ps1: line 175
at <ScriptBlock>, C:\Run\start.ps1: line 115
at <ScriptBlock>, <No file>: line 1
TimeGenerated : 12/10/2018 12:26:28 PM
EntryType : Error
Message : Server instance: NAV
Category: Extensions
ClientSessionId: 00000000-0000-0000-0000-000000000000
ClientActivityId: 0dd46139-a30e-48e6-80b3-ca3e0b50853d
ServerSessionUniqueId: 00000000-0000-0000-0000-000000000000
ServerActivityId: 00000000-0000-0000-0000-000000000000
EventTime: 12/10/2018 11:26:28
Message Adding tenant aborted because of an extension failure
-- Tenant:default
ProcessId: 5936
Tag: 000009X
ThreadId: 11
CounterInformation:
TimeGenerated : 12/10/2018 12:26:28 PM
EntryType : Error
Message : Server instance: NAV
Category: Extensions
ClientSessionId: 00000000-0000-0000-0000-000000000000
ClientActivityId: 0dd46139-a30e-48e6-80b3-ca3e0b50853d
ServerSessionUniqueId: 00000000-0000-0000-0000-000000000000
ServerActivityId: 00000000-0000-0000-0000-000000000000
EventTime: 12/10/2018 11:26:28
Message (NavClientIOException): Please look in
TransientTelemetry for further details, ID
14203c30-8032-4a53-a520-de57d53eed88
ParentException: NavClientIOException
A required privilege is not held by the client.
bcsandbox-master is pulling right now
And bcsandbox-master also works!
PS C:\temp> docker run -e accept_eula=y -e ExitOnError=N -e WebClient=n -e httpsite=n --rm bcinsider.azurecr.io/bcsandbox-master:ltsc2019
Initializing...
Starting Container
Hostname is 8acb360ab4a6
PublicDnsName is 8acb360ab4a6
Using NavUserPassword Authentication
Starting Local SQL Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint CCA0F1D61F4EF5DD95B20BA3D3287901E4FCF97C
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Creating Windows user admin
Setting SA Password and enabling SA
Creating admin as SQL User and add to sysadmin
Creating SUPER user
Container IP Address: 172.27.178.7
Container Hostname : 8acb360ab4a6
Container Dns Name : 8acb360ab4a6
Admin Username : admin
Admin Password : Hozy7366
Initialization took 122 seconds
Ready for connections!
After wondering for ten minutes why I couldn't access the WebClient (hint: -e WebClient=n
is not helping for that test case...) I ran again and now can also confirm that I can log in to the bcsandbox-master WebClient
PS C:\temp> docker run -e accept_eula=y -e ExitOnError=N --rm bcinsider.azurecr.io/bcsandbox-master:ltsc2019
Initializing...
Starting Container
Hostname is 9a9a19c874da
PublicDnsName is 9a9a19c874da
Using NavUserPassword Authentication
Starting Local SQL Server
Starting Internet Information Server
Creating Self Signed Certificate
Self Signed Certificate Thumbprint 1D834957AFA9A4556EA85202C8479927C6169E22
Modifying Service Tier Config File with Instance Specific Settings
Starting Service Tier
Creating DotNetCore Web Server Instance
Enabling Financials User Experience
Creating http download site
Creating Windows user admin
Setting SA Password and enabling SA
Creating admin as SQL User and add to sysadmin
Creating SUPER user
Container IP Address: 172.27.180.148
Container Hostname : 9a9a19c874da
Container Dns Name : 9a9a19c874da
Web Client : https://9a9a19c874da/NAV/
Admin Username : admin
Admin Password : Jole1355
Dev. Server : https://9a9a19c874da
Dev. ServerInstance : NAV
Files:
http://9a9a19c874da:8080/al-2.1.70607.vsix
http://9a9a19c874da:8080/certificate.cer
Initialization took 106 seconds
Ready for connections!
And
When doing the following docker run, I get an error that the NAV instance has not started:
docker inspect shows the following:
If I enter the container and check the instance, it is stopped
Is something broken on my side or is this a problem with the latest images?