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

gyu*_*isc 5 httplistener nancy asp.net-web-api owin

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

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

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

小智 16

只有你使用Katana项目中的OWIN和HttpListener才有可能.您可以使用地图中间件在不同的路径上托管Nancy和WebApi :

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        app.Map("/nancy", branch => branch.UseNancy())
           .Map("/webapi", branch => branch.UseWebApi());
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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