5

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

我想知道是否可以向这个项目添加一个 WebApi 控制器并确保某个路由仅由这个 WebApi 控制器提供服务。

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

4

1 回答 1

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());
    }
}

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

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        app.UseNancy(opt => 
                     opt.PassThroughWhenStatusCodesAre(HttpStatusCode.NotFound)
           .UseWebApi();
    }
}
于 2013-09-15T20:41:23.903 回答