我对Owin的一大好处的印象是,它可以轻松地在没有IIS IHttpHandler
的情况下并行运行不同的Web框架。 (这对于将垂直功能切片分配为nuget功能非常重要。)
然而,我发现每个教程和文章都会讨论自托管和单个框架。这不是我感兴趣的,我有兴趣在同一个应用程序中运行mvc,nancy,web api甚至webforms。
OWIN启用此功能我错了吗?说我想要
如何配置我的Startup
课程以启用此功能?
答案 0 :(得分:14)
虽然用例听起来有点荒谬,但OWIN能够做到这一点绝对是对的。你可以用各种疯狂的方式组成你的管道。
典型的“直线”管道看起来像这样:
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseWebApi(new MyHttpConfiguration());
app.MapSignalR();
app.UseNancy();
}
}
这将按如下方式工作(假设您在http://localhost/
上托管)
http://localhost/api/*
(默认路由)http://localhost/signalr
(默认路线)http://localhost/*
(将处理其他所有事情)您还可以在管道中创建分支:
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseWebApi(new MyHttpConfiguration());
app.Map("/newSite", site =>
{
site.MapSignalR();
site.UseNancy();
});
}
}
这将按如下方式工作(假设您在http://localhost/
上托管)
http://localhost/api/*
(默认路由)http://localhost/newSite/signalr
(默认路线)http://localhost/newSite/*
(将处理其他所有事情)