.net core, docker 在vs2019开发过程中的问题以及解决办法

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

posted @ 2019-11-07 18:41  陈哲Gilbert  阅读(2515)  评论(0编辑  收藏  举报