【问题标题】:Error while running the ASP.NET Core WebApp on Docker in Windows 7 (Debugging)在 Windows 7 中的 Docker 上运行 ASP.NET Core WebApp 时出错(调试)
【发布时间】:2016-11-28 13:37:31
【问题描述】:

我正在尝试在 Windows 7 的 docker 上运行 asp.net 核心应用程序。我安装了 Visual Studio 2015 Enterprise(更新 3)和 Visual Studio Tools for Docker。另外,我可以在 Release 配置中运行应用程序。

我没有对 Dockerfile 和 compose 文件进行任何更改,这些是我创建项目并添加 Docker 支持时创建的默认设置。

当我使用调试配置运行应用程序时,我收到以下错误,它没有运行任何 docker 容器来运行和调试应用程序:

Error   MSB4018 The "PrepareForLaunch" task failed unexpectedly.
System.InvalidOperationException: Unable to validate volume mapping. For troubleshooting, follow instructions from http://aka.ms/DockerToolsTroubleshooting
   at Microsoft.DotNet.Docker.BuildTasks.PrepareForLaunch.<ExecuteAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.DotNet.Docker.BuildTasks.DockerBaseTask.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() SampleCoreApp   C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Publishing\ImportAfter\Microsoft.DotNet.Docker.targets  70  

任何解决此问题的帮助或线索都会有所帮助。

【问题讨论】:

    标签: docker asp.net-core asp.net-core-mvc docker-toolbox


    【解决方案1】:

    此问题是由于此处的驱动器映射存在问题。因此,我已经删除了一个驱动器映射(- .:/app),并且还更改了 docker-compose.dev.debug.yml 文件中的源参数(obj/Docker/empty 为 .),它对我有用。

    上一个文件(docker-compose.dev.debug.yml):

    version: '2'
    
    services:
    samplecoreapp:
        build:
        args:
            source: obj/Docker/empty
        labels:
        - "com.microsoft.visualstudio.targetoperatingsystem=linux"
        environment:
        - ASPNETCORE_ENVIRONMENT=Development
        - DOTNET_USE_POLLING_FILE_WATCHER=1
        volumes:
        - .:/app
        - ~/.nuget/packages:/root/.nuget/packages:ro
        - ~/clrdbg:/clrdbg:ro
        entrypoint: tail -f /dev/null
    

    修改后:

    version: '2'
    
    services:
    samplecoreapp:
        build:
        args:
            source: .
        labels:
        - "com.microsoft.visualstudio.targetoperatingsystem=linux"
        environment:
        - ASPNETCORE_ENVIRONMENT=Development
        - DOTNET_USE_POLLING_FILE_WATCHER=1
        volumes:
        - ~/.nuget/packages:/root/.nuget/packages:ro
        - ~/clrdbg:/clrdbg:ro
        entrypoint: tail -f /dev/null
    

    希望这对面临此问题的人有所帮助。

    【讨论】:

      【解决方案2】:

      这可能是由于 Docker 中的驱动器共享/卷安装问题,我遇到了这个确切的问题并从 Docker 设置中修复。这恰好出现在连接到公司域的机器中,默认情况下 docker 具有有限的权限。适当的解决方法是从 Docker 设置中更新您的“共享驱动器”。

      Update shared drives

      更多细节可以在这里找到https://blogs.msdn.microsoft.com/stevelasker/2016/06/14/configuring-docker-for-windows-volumes/

      【讨论】:

      • 我必须做什么,什么时候可以使用 Windows 10 容器?
      猜你喜欢
      • 1970-01-01
      • 2014-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      • 2019-11-10
      相关资源
      最近更新 更多