如果我直接在startup.cs
中调用中间件,例如:
public void Configure(IApplicationBuilder app)
{
app.UseMiddleware<StaticFileMiddleware>();
app.UseMiddleware<DefaultFilesMiddleware>();
}
查看source on GitHub,这正是扩展方法调用的代码。但是,我收到500错误和堆栈跟踪:
:(
Oops.
500 Internal Server Error
System.InvalidOperationException
The 'Invoke' method's first argument must be of type 'HttpContext'.
at Microsoft.AspNetCore.Builder.<>c__DisplayClass3_0.<UseMiddleware>b__0(RequestDelegate next)
at Microsoft.AspNetCore.Builder.Internal.ApplicationBuilder.Build()
at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()
Show raw exception details
System.InvalidOperationException: The 'Invoke' method's first argument must be of type 'HttpContext'.
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass3_0.b__0(RequestDelegate next)
at Microsoft.AspNetCore.Builder.Internal.ApplicationBuilder.Build()
at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()
此可能与我的No Static Files Extensions are referable问题相关。
无论哪种方式,我目前无法成功加载简单的index.html
页面。
任何帮助?
由于
答案 0 :(得分:2)
您可能在项目中使用了RC1版本的StaticFiles库,而不是RC2。
在project.json
中,更改此内容:
"dependencies": {
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final"
}
对此:
"dependencies": {
"Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final"
}
命名空间也发生了变化,但一旦纠正了你就应该好了。
答案 1 :(得分:1)
从那时起,asp.net核心1.0已经发布。 正确的NuGet包是:(注意:.AspNetCore。)
"Microsoft.AspNetCore.StaticFiles": "1.0.0"
你可以使用(再次)
app.UseStaticFiles();
答案 2 :(得分:0)
您也可以致电:
app.UseStaticFiles();
app.UseDefaultFiles();
而不是UseMiddleware方法。