运行 在 Windows 7 中 Docker 上的 ASP.NET Core WebApp 出错(调试)
Error while running the ASP.NET Core WebApp on Docker in Windows 7 (Debugging)
我正在尝试 运行 docker 上的 asp.net 核心应用 windows 7。我有 Visual Studio 2015 Enterprise(更新 3)和Visual Studio 已安装 Docker 的工具。此外,我能够 运行 发布配置中的应用程序。
我没有对 Docker 文件和组合文件进行任何更改,这些是我在创建项目并添加 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
解决此问题的任何帮助或线索都会有所帮助。
这个问题是因为这里的驱动器映射有问题。因此,我删除了其中一个驱动器映射 (- .:/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
希望这对遇到此问题的人有所帮助。
这可能是由于 Docker 中的驱动器 Share/volume 安装问题,我遇到了这个确切的问题并从 Docker 设置中修复。这恰好出现在连接到企业域的机器中,其中 docker 默认具有有限权限。适当的解决方法是从 Docker 设置更新您的 "Shared Drives"。
Update shared drives
可以在此处找到更多详细信息https://blogs.msdn.microsoft.com/stevelasker/2016/06/14/configuring-docker-for-windows-volumes/
我正在尝试 运行 docker 上的 asp.net 核心应用 windows 7。我有 Visual Studio 2015 Enterprise(更新 3)和Visual Studio 已安装 Docker 的工具。此外,我能够 运行 发布配置中的应用程序。
我没有对 Docker 文件和组合文件进行任何更改,这些是我在创建项目并添加 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
解决此问题的任何帮助或线索都会有所帮助。
这个问题是因为这里的驱动器映射有问题。因此,我删除了其中一个驱动器映射 (- .:/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
希望这对遇到此问题的人有所帮助。
这可能是由于 Docker 中的驱动器 Share/volume 安装问题,我遇到了这个确切的问题并从 Docker 设置中修复。这恰好出现在连接到企业域的机器中,其中 docker 默认具有有限权限。适当的解决方法是从 Docker 设置更新您的 "Shared Drives"。
Update shared drives
可以在此处找到更多详细信息https://blogs.msdn.microsoft.com/stevelasker/2016/06/14/configuring-docker-for-windows-volumes/