Tôi đang đối mặt với các vấn đề trong khi chạy ứng dụng của tôi được xây dựng trên ASP.NET Core bằng cách sử dụng Docker trong Visual Studio. Ứng dụng của tôi chỉ sử dụng khung công tác dnxcore50. tập tin project.json của tôi là:ASP.NET Core - Các vấn đề trong khi gỡ lỗi thông qua Docker trong Visual Studio 2015
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final"
},
"frameworks": {
"dnxcore50": { }
},
"exclude": [
"wwwroot",
"node_modules"
],
"publishExclude": [
"**.user",
"**.vspscc"
],
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
}
}
Tôi đã thử phương pháp sau đây:
- Khi điểm dnvm tôi để thời gian chạy DNX-coreclr-win-x64.1.0.0-rc1-Update1 như thể hiện trong hình dưới đây.
Ứng dụng của tôi được xây dựng thành công. Nhưng, tôi nhận được lỗi sau trên chạy/gỡ lỗi các ứng dụng trên Docker và ứng dụng của tôi bị mắc kẹt tại "trang web mở http://192.168.99.100:5000" chi tiết
Lỗi: Khung thời gian chạy hiện tại không tương thích với 'ứng dụng' Các khung thời gian chạy hiện tại: 'DNX, Phiên bản = v4.5.1 (dnx451)' Hãy đảm bảo thời gian chạy khớp với khung được chỉ định trong project.json
- Như thông báo lỗi trên cho thấy có sự không phù hợp trong khung công tác, tôi đã thay đổi thời gian chạy mặc định và hoạt động thành dnx-coreclr-linux-x64.1.0.0-rc1-update1 bằng cách sửa đổi bí danh mặc định và lệnh thực thi
dnvm use default -p
. Sau đó, tôi khởi động lại VS của tôi (để đảm bảo các thay đổi có thể nhìn thấy trong VS).
Tuy nhiên, ứng dụng của tôi vẫn được xây dựng trên DNX phiên bản v4.5.1 như đề xuất trong xây dựng các bản ghi dưới đây:
1> Information: [LoaderContainer]: Load name=Microsoft.Dnx.Tooling
1> Information: [PathBasedAssemblyLoader]: Loaded name=Microsoft.Dnx.Tooling in 2ms
1> Information: [Bootstrapper] Runtime Framework: DNX,Version=v4.5.1
1> Microsoft .NET Development Utility Mono-x64-1.0.0-rc1-16231
Do đó, việc áp dụng một lần nữa thất bại trong việc chạy với lỗi tương tự như trong điểm 1.
Ngoài ra, khi thay đổi khôi phục thời gian chạy mặc định dnu ngừng hoạt động từ dòng lệnh và đưa ra lỗi sau:
'dnu' is not recognized as an internal or external command, operable program or batch file.
Điều thú vị là lệnh khôi phục 'dnu' tiếp tục hoạt động từ VS (như được đề xuất trong nhật ký xây dựng VS).
- Sau đó, tôi đã cố gắng thay đổi thời gian chạy dnvm thành dnx-mono.1.0.0-rc1-update1. Nhưng nó không thành công với lỗi sau:
Cannot find dnx-mono.1.0.0-rc1-update1.1.0.0-rc1-update1, do you need to run 'dnvm install default'? At C:\Program Files\Microsoft DNX\Dnvm\dnvm.ps1:1659 char:9 + throw "Cannot find $runtimeFullName, do you need to run '$Com ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (Cannot find dnx...stall default'?:String) [], Run timeException + FullyQualifiedErrorId : Cannot find dnx-mono.1.0.0-rc1-update1.1.0.0-rc1-update1, do you nee d to run 'dnvm install default'?
runtime Những gì tôi cần phải sử dụng để chạy Docker từ VS và làm thế nào tôi có thể thay đổi nó? Yêu cầu sự giúp đỡ của bạn để giải quyết vấn đề.
Cập nhật cuối cùng tôi đã có thể giải quyết vấn đề bằng cách thay đổi các tập tin Docker dòng đầu tiên để FROM microsoft/aspnet:1.0.0-rc1-update1-coreclr
TỪ microsoft/aspnet:1.0.0-rc1-update1
. Cảm ơn @bertt cho mẹo.
Hãy ghi lại nội dung của tất cả các ảnh chụp màn hình để có thể đọc văn bản (khi nhỏ), khi có trung bình như nguồn cấp dữ liệu cung cấp không cho phép hình ảnh), có thể được đọc (khi liên kết hình ảnh cuối cùng bị hỏng) và có thể được tìm kiếm. – ErikE
@ErikE đã thêm chi tiết hình ảnh làm văn bản –