异常尝试 运行 ASP.NET 5 Docker 容器
Exception trying to run ASP.NET 5 Docker container
正在尝试创建我的 Docker 容器。图像构建没有问题但是当我尝试 运行:
docker run -t -d --name website website
我得到以下异常:
System.InvalidOperationException: Failed to resolve the following dependencies for target framework 'Asp.Net,Version=v5.0':
app 1.0.0
Microsoft.Framework.Logging.Interfaces 1.0.0-beta2
Searched Locations:
/{name}/project.json
/root/.kpm/packages/{name}/{version}/{name}.nuspec
/usr/lib/mono/4.5/{name}.dll
/usr/lib/mono/4.5/Facades/{name}.dll
Try running 'kpm restore'.
at Microsoft.Framework.Runtime.DefaultHost.GetEntryPoint (System.String applicationName) [0x00000] in <filename unknown>:0
at Microsoft.Framework.ApplicationHost.Program.ExecuteMain (Microsoft.Framework.Runtime.DefaultHost host, System.String applicationName, System.String[] args) [0x00000] in <filename unknown>:0
at Microsoft.Framework.ApplicationHost.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
看起来像是缺少参考,但在 project.json 中肯定有参考,因为我包括了 Microsoft.AspNet.Hosting。
它建议 运行ning kpm 恢复,但我不能这样做,因为容器不是 运行ning。
有人以前见过类似的东西吗?
更新#1
好的,所以如果我添加对 Microsoft.Framework.Logging.Interfaces 的显式引用可以解决,但我仍然使用我不知道的应用程序 1.0.0
更新#2
这是我的 project.json:
{
"webroot": "wwwroot",
"dependencies": {
"Kestrel": "1.0.0-beta1",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta1",
"Microsoft.AspNet.Hosting": "1.0.0-beta1",
"Microsoft.AspNet.Mvc": "6.0.0-beta1",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta1",
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0.0-beta1",
"System.Net.Http": "4.0.0-beta-22231"
},
"commands": {
"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5001",
"kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5004"
},
"frameworks": {
"aspnetcore50": {
}
}
}
我认为问题在于您正尝试在 CoreCLR (aspnetcore50
) 上 运行。
由于您 运行 正在 Linux/Mono 上,您应该改用 DesktopCLR (aspnet50
)。
正在尝试创建我的 Docker 容器。图像构建没有问题但是当我尝试 运行:
docker run -t -d --name website website
我得到以下异常:
System.InvalidOperationException: Failed to resolve the following dependencies for target framework 'Asp.Net,Version=v5.0':
app 1.0.0
Microsoft.Framework.Logging.Interfaces 1.0.0-beta2
Searched Locations:
/{name}/project.json
/root/.kpm/packages/{name}/{version}/{name}.nuspec
/usr/lib/mono/4.5/{name}.dll
/usr/lib/mono/4.5/Facades/{name}.dll
Try running 'kpm restore'.
at Microsoft.Framework.Runtime.DefaultHost.GetEntryPoint (System.String applicationName) [0x00000] in <filename unknown>:0
at Microsoft.Framework.ApplicationHost.Program.ExecuteMain (Microsoft.Framework.Runtime.DefaultHost host, System.String applicationName, System.String[] args) [0x00000] in <filename unknown>:0
at Microsoft.Framework.ApplicationHost.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
看起来像是缺少参考,但在 project.json 中肯定有参考,因为我包括了 Microsoft.AspNet.Hosting。
它建议 运行ning kpm 恢复,但我不能这样做,因为容器不是 运行ning。
有人以前见过类似的东西吗?
更新#1
好的,所以如果我添加对 Microsoft.Framework.Logging.Interfaces 的显式引用可以解决,但我仍然使用我不知道的应用程序 1.0.0
更新#2
这是我的 project.json:
{
"webroot": "wwwroot",
"dependencies": {
"Kestrel": "1.0.0-beta1",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta1",
"Microsoft.AspNet.Hosting": "1.0.0-beta1",
"Microsoft.AspNet.Mvc": "6.0.0-beta1",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta1",
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0.0-beta1",
"System.Net.Http": "4.0.0-beta-22231"
},
"commands": {
"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5001",
"kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5004"
},
"frameworks": {
"aspnetcore50": {
}
}
}
我认为问题在于您正尝试在 CoreCLR (aspnetcore50
) 上 运行。
由于您 运行 正在 Linux/Mono 上,您应该改用 DesktopCLR (aspnet50
)。