microsoft / navcontainerhelper

Official Microsoft repository for BcContainerHelper, a PowerShell module, which makes it easier to work with Business Central Containers on Docker.
MIT License
381 stars 243 forks source link

Compile-Objects - throws Code page error #781

Closed sweikelt closed 4 years ago

sweikelt commented 4 years ago

Hi,

i hope i'm on the right place here.

I'm trying to Compile-ObjectsInNavContainer -containerName XXX -sqlCredential $databaseCredential

But i get some CodePage-Error

`: [6146889] There is no system code page on your computer that matches the 1252 code page of the Latin1_General_100_CS_AS collation for the XXX_DEV database. Your system code pages are: ANSI: 65001, OEM: 65001. Ensure that the Regional Options of the computer use the correct system language and locale for the code pages to match. You can also disable the 'Validate Collation' setting for this database. It is possible that certain text data will not be converted correctly when stored in the database. Click OK to disable the 'Validate Collation' setting and continue to use the database, or click Cancel to exit.

at Compile-NAVApplicationObject, C:\Program Files (x86)\Microsoft Dynamics NAV\140\RoleTailored Client\Microsoft.Dynamics.Nav.Ide.psm1: line 610 at , : line 30 : [6146889] There is no system code page on your computer that matches the 1252 code page of the Latin1_General_100_CS_AS collation for the Beyersdorf_DEV database. Your system code pages are: ANSI: 65001, OEM: 65001. Ensure that the Regional Options of the computer use the correct system language and locale for the code pages to match. You can also disable the 'Validate Collation' setting for this database. It is possible that certain text data will not be converted correctly when stored in the database. Click OK to disable the 'Validate Collation' setting and continue to use the database, or click Cancel to exit.

In C:\Program Files\WindowsPowerShell\Modules\navcontainerhelper\0.6.2.91\ContainerHandling\Invoke-ScriptInNavContainer.ps1:37 Zeichen:13

My Container is build with this params: New-navcontainer -accept_eula -containerName $containerName -Auth NavUserPassword -imageName mcr.microsoft.com/businesscentral/onprem:cu2-de-ltsc2016 -Credential $navCred -databaseServer $databaseServer -databaseInstance $databaseInstance -databaseName $databaseName -databaseCredential $databaseCredential -enableSymbolLoading -accept_outdated -doNotExportObjectsToText -includeCSIDE -updateHosts -memoryLimit 4G -useBestContainerOS -additionalParameters @("--env locale=de-DE")

i found "some" Codepage-Errors here, but don't know how to resolve this

PS: using docker on a Win10 maschine

PPS: any1 here to show me, how to post correct "code" , so that it is readable? ....that's just meehhhh

freddydk commented 4 years ago

A button in the toolbar is called "insert code" that allows you to format code as code. If you add the output of the container creation, when I can see which versions you are running and whether you are running process isolation or hyperv.

sweikelt commented 4 years ago

thnx freddy, i used "insert code" - the result is what you see :D

--> Using hyperv isolation

`NavContainerHelper is version 0.6.2.91 Host is Microsoft Windows 10 Pro - Unknown/Insider build Docker Client Version is 19.03.5 Docker Server Version is 19.03.5 Using image mcr.microsoft.com/businesscentral/onprem:cu2-de-ltsc2016 Removing Bey from hosts Removing C:\ProgramData\NavContainerHelper\Extensions\xxx Creating Container xxx Version: 14.3.34444.0-de Platform: 14.0.34251.0 Generic Tag: 0.0.9.9 Container OS Version: 10.0.14393.3025 (ltsc2016) Host OS Version: 10.0.18363.476 (Unknown/Insider build) A better Generic Container OS exists for your host (1903) Using generic image mcr.microsoft.com/dynamicsnav:generic-1903 Generic Container OS Version: 10.0.18362.418 (1903) Generic Tag of better generic: 0.0.9.96 The container operating system does not match the host operating system, forcing hyperv isolation. Using locale de-DE Using hyperv isolation Disabling the standard eventlog dump to container log every 2 seconds (use -dumpEventLog to enable) Files in C:\ProgramData\NavContainerHelper\Extensions\xxx\my:

PS: i removed "-useBestContainerOS " switch, because https://github.com/NAVBaaS/GitIntegration/issues/23

but now i got this `Reading CustomSettings.config from xxx Vom Hintergrundvorgang wurde ein Fehler mit der folgenden Meldung ausgegeben: "Der Hyper-V-Socket-Zielprozess wurde beendet.". bei Invoke-ScriptInNavContainer, C:\Program Files\WindowsPowerShell\Modules\navcontainerhelper\0.6.2.91\ContainerHandling\Invoke-ScriptInNavContainer.ps1: Zeile 37 bei New-NavContainer, C:\Program Files\WindowsPowerShell\Modules\navcontainerhelper\0.6.2.91\ContainerHandling\New-NavContainer.ps1: Zeile 1092 bei , : Zeile 1 Vom Hintergrundvorgang wurde ein Fehler mit der folgenden Meldung ausgegeben: "Der Hyper-V-Socket-Zielprozess wurde beendet.". In C:\Program Files\WindowsPowerShell\Modules\navcontainerhelper\0.6.2.91\ContainerHandling\Invoke-ScriptInNavContainer.ps1:37 Zeichen:13

tomorrow i'll do some new tries

freddydk commented 4 years ago

Please Update the NavContainerHelper and try again On the output, I can see that your version of containerhelper doesn't know the version of windows you have, meaning that it defaults to 1903 - and uses hyperv isolation. The codepage problems are (I think) when you run ltsc2019 or later containers using hyperv.

sweikelt commented 4 years ago

thnx freddy - after updating navcontainerhelper it worked (first time i updated a module o_O)

freddydk commented 4 years ago

Yeah, for the record on this bug - if somebody needs to run hyperv containers (for some reason cannot run process) - then the ltsc2016 containers should work with the right codepage. Codepage problems occur with ltsc2019 and hyperv (and containers pre 15.x) - when you work with C/AL.