我对OWIN非常陌生,并试图了解OWIN映射扩展是如何工作的。我创建了一个空的ASP.Net项目,并引用了Owin、Microsoft.Owin、Microsoft.Owin.Host.SystemWeb包。
我创建了一个类似于bello的中间件类。
public class TempMiddleware : OwinMiddleware
{
public TempMiddleware(OwinMiddleware next)
: base(next)
{
}
public override Task Invoke(IOwinContext context)
{
return context.Response.WriteAsync("Response from Temp Middleware");
}
}这是我的OWIN启动类。
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.Map("/temp", config => config.Use<TempMiddleware>());
}
}我对门户项目进行了如下配置。

当我从VS2017运行该项目时,它返回HTTP 403.14 -禁止的页面。
实际上我的期望是,它应该在浏览器上显示"Response from Temp Middleware“消息。
我的代码中有什么问题吗?
谢谢
发布于 2020-05-15 20:31:23
Map()用于对管道进行分支。在委托中,也就是Map()方法的第二个参数中,您需要运行一个中间件。
您的配置代码应该是这样的:
public void Configuration(IAppBuilder app)
{
app.Map("/temp", config => config.Run(async context =>
{
await context.Response.WriteAsync("Response from Temp Middleware");
}));
}https://stackoverflow.com/questions/61538069
复制相似问题