是否可以在同一个应用程序中一起使用NancyFx模块和WebAPI控制器?

时间:2013-09-15 18:40:38

标签: asp.net-web-api nancy httplistener owin

我有一个使用NancyFx的自托管Owin HttpListener应用程序。

我想知道是否可以在此项目中添加WebApi控制器,并确保仅由此WebApi控制器提供某个路由。

看到这个工作的一个例子真的很高兴。

1 个答案:

答案 0 :(得分:16)

只有你使用Katana项目中的OWIN和HttpListener才有可能。您可以使用map middleware

在不同的路径上托管Nancy和WebApi
public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        app.Map("/nancy", branch => branch.UseNancy())
           .Map("/webapi", branch => branch.UseWebApi());
    }
}

或者您可以将Nancy配置为传递到后续中间件,例如,如果Nancy正在响应404:

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        app.UseNancy(opt => 
                     opt.PassThroughWhenStatusCodesAre(HttpStatusCode.NotFound)
           .UseWebApi();
    }
}