Назад | Перейти на главную страницу

Microsoft.ACE.OLEDB не работает в Windows Server Core 1909, но работает в Windows Server 2019 с точно такой же конфигурацией.

Я пытаюсь перенести приложение MVC .Net Framework на Windows Server Core. В основном это работало нормально, но я попал в блокиратор и не знаю, как его обойти.

В одной части кода приложение пытается прочитать файл Excel, используя Provider = Microsoft.ACE.OLEDB.12.0.

Он использует 64-битное ядро ​​СУБД Access.

В Server Core этот код всегда дает сбой. Я не могу зафиксировать ошибку, так как это сразу приводит к сбою веб-процесса.

Чтобы попытаться отладить его, я запустил новый экземпляр Server 2019, используя ту же конфигурацию и тот же шаблон запуска.

В этом новом экземпляре код работал нормально.

Это мои пользовательские данные для экземпляров ...

<powershell>
Enable-WindowsOptionalFeature -Online -All -FeatureName IIS-WebServerRole, `
                                                        IIS-WebServer, `
                                                        IIS-HttpErrors, `
                                                        IIS-HttpRedirect, `
                                                        IIS-HttpCompressionStatic, `
                                                        IIS-HttpCompressionDynamic, `
                                                        IIS-StaticContent, `
                                                        IIS-RequestFiltering, `
                                                        IIS-Security, `
                                                        IIS-ASPNET, `
                                                        IIS-ASPNET45

Remove-Website -Name "Default Web Site"

New-NetFirewallRule -DisplayName "Allow Custom IIS Websites" -Direction Inbound -LocalPort 8081-8084 -Protocol TCP -Action Allow

Set-TimeZone -Id "AUS Eastern Standard Time"

copy-s3object -BucketName my-utils-bucket -Key "utils-folder/accessdatabaseengine_X64.exe" -LocalFile "$Env:TEMP\accessdatabaseengine_X64.exe"

&"$Env:TEMP\accessdatabaseengine_X64.exe" /quiet

Invoke-WebRequest -Uri "https://awscli.amazonaws.com/AWSCLIV2.msi" -OutFile "$Env:Temp/AWSCLIV2.msi"

Start-Process msiexec.exe -Wait -ArgumentList "/i ""$Env:Temp\AWSCLIV2.msi"" /qn";

</powershell>

За исключением пользовательского интерфейса, эти 2 сервера должны быть идентичными.

После запуска единственное, что я делаю, это запускаю код для регистрации агента Azure Devops.

Может ли кто-нибудь подсказать, почему экземпляры Server Core могут иметь проблемы с драйвером Ace? Насколько я понимаю, ядро ​​сервера было практически идентичным, за исключением пользовательского интерфейса.