我正在用 Kestrel 在 DNX 上运行 ASP.NET vNext 的 HelloWeb 示例修改版。我知道这是 非常最前沿的技术,但我希望 ASP.NET 团队至少能保持最简单的 Web 应用程序工作:)
环境:
Startup.cs
中的“ Web 应用程序”代码:
using Microsoft.AspNet.Builder;
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseWelcomePage();
}
}
项目配置,在 project.json
中:
{
"dependencies": {
"Kestrel": "1.0.0-beta4",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta4",
"Microsoft.AspNet.Hosting": "1.0.0-beta4",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta4",
"Microsoft.AspNet.StaticFiles": "1.0.0-beta4",
"Microsoft.Framework.Runtime": "1.0.0-beta4",
"Microsoft.Framework.Runtime.Common": "1.0.0-beta4",
"Microsoft.Framework.Runtime.Loader": "1.0.0-beta4",
"Microsoft.Framework.Runtime.Interfaces": "1.0.0-beta4",
},
"commands": {
"kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5004"
},
"frameworks": {
"dnx451": {}
}
}
kpm restore
运行正常。
但是,当我尝试运行时,我得到一个异常,表明找不到 Microsoft.Framework.Runtime.IApplicationEnvironment
。命令行和错误(稍微重新格式化)
.../HelloWeb$ dnx . kestrel
System.IO.FileNotFoundException: Could not load file or assembly
'Microsoft.Framework.Runtime.IApplicationEnvironment,
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
or one of its dependencies.
File name: 'Microsoft.Framework.Runtime.IApplicationEnvironment,
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke
(System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke
(System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder,
System.Object[] parameters, System.Globalization.CultureInfo culture)
[0x00000] in <filename unknown>:0
虽然很明显,我最迫切的需要是解决这个问题,但我也希望得到一些建议,告诉我如何去诊断哪里出了问题,这样我就可以在将来自己解决类似的问题。(这也可能使这个问题对其他人更有用。)
我在 Microsoft.Framework.Runtime.Interfaces
汇编源中发现了 Microsoft.Framework.Runtime.IApplicationEnvironment
,而且最近似乎没有什么变化。不清楚为什么异常显示的名称就好像它本身是一个完整的程序集,而不仅仅是另一个程序集内的接口。我猜这个 < em > 可能是由于 < a href = “ https://github.com/aspnet/Home/wiki/Assembly-Neutral-Interfaces”rel = “ noReferrer”> 汇编中立接口 ,但是从错误中不清楚。([AssemblyNeutral]
死了,所以不是..。)