.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>
5、 |