.net core, docker 在vs2019開發過程中的問題以及解決辦法
記錄下來,幫助Ta人~
1、vs調試,快Build完后提示Docker 端口:xxxx,xxxx,xxxx占用
解決辦法:取消vs調試狀態,打開Window任務管理器,結束進程com.docker.backend.exe,重新再啟動vs調試,這時候應該不需要再重新build。
如果這時候繼續要build了,就停止vs調試,退出Docker,結束進程com.docker.backend.exe,再啟動Docker,重新再啟動vs調試。
2、vs調試,docker pull 拉取包報錯
提示錯誤:Get https://mcr.microsoft.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
原因:你的網絡環境不行,我當時出這個問題時,是用的湖北廣電
嘗試手動拉取:docker pull mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim 仍然一樣的報錯
3、vs調試,build出錯
提示錯誤:mkdir /host_mnt/c: file exists
原因分析:可能是在你Docker跑起來的過程中,你本機電腦的開機密碼有修改
解決辦法:重啟docker,會提示重新輸入計算機開機密碼。
4、.net core 3.0+ mvc 動態編譯的問題
1> 配置動態編譯
VS-->NuGet包管理器,安裝Install-Package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation -Version 3.0.0+
public override void ConfigureServices(IServiceCollection services) { base.ConfigureServices(services); services.AddControllersWithViews() .AddRazorRuntimeCompilation(); }
2> 配置動態編譯后,報如下錯誤,如何解決?
編輯項目,配置如下屬性
<PreserveCompilationReferences>true</PreserveCompilationReferences>
<PropertyGroup> <TargetFramework>netcoreapp3.0</TargetFramework> <DockerTargetOS>Linux</DockerTargetOS> <DockerfileContext>..\..\..</DockerfileContext> <DockerComposeProjectPath>..\..\..\docker-compose.dcproj</DockerComposeProjectPath> <PreserveCompilationReferences>true</PreserveCompilationReferences> </PropertyGroup>