我有一個任務,我必須把我的CSOM .NET CORE 2.2項目放在Docker中。該項目由一個控制臺應用程序組成,該應用程序調用更新分類字段的 CSOM 項目 (dll)。當我自己運行項目時,它工作正常。當我將項目放在Docker容器中并嘗試運行它時,我得到以下結果System.AggregateException:發生一個或多個錯誤。(“Microsoft.Win32.Registry”的類型初始值設定項引發了異常。---> System.TypeInitializationException:'Microsoft.Win32.Registry' 的類型初始值設定項引發異常。---> System.PlatformNotSupportedException: 此平臺上不支持注冊表。這是我的 Docker 文件FROM microsoft/aspnetcore-build:2.0FROM microsoft/dotnet:2.2-aspnetcore-runtimeFROM microsoft/dotnet:2.2-sdkWORKDIR /app# copy csproj and restore as distinct layersCOPY *.csproj ./RUN dotnet restore# copy and build everything elseCOPY . ./#RUN dotnet publish -c Release -o outENTRYPOINT ["dotnet", "out/WebJobCore.dll"]下面是控制臺應用中的代碼部分 public static void Main(string[] args) { Console.WriteLine("Testing webjob"); Program t = new Program(); t.RunSynchronizer().Wait(); } public async Task RunSynchronizer() { var traceWriter = new ConsoleTraceWriter(); var taxonomyFactory = new ItaTaxonomyFactory(); var synchronizer = new ItaTaxonomySynchronizer(traceWriter, taxonomyFactory); Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); await synchronizer.SyncAll(); stopWatch.Stop(); TimeSpan ts = stopWatch.Elapsed; // Format and display the TimeSpan value. string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10); Console.WriteLine("My RunTime " + elapsedTime); }
1 回答

心有法竹
TA貢獻1866條經驗 獲得超5個贊
在我切換到Docker上的Windows容器并使用此命令拉下Nano Server之后,這是可能的
docker pull mcr.microsoft.com/windows/nanoserver
- 1 回答
- 0 關注
- 92 瀏覽
添加回答
舉報
0/150
提交
取消