Nancy和WebAPI在OWIN中的自主机冲突路由
本文关键字:主机 冲突 路由 WebAPI OWIN Nancy | 更新日期: 2023-09-27 18:28:46
我第一次使用OWIN做一些工作,并试图设置一些东西,以便我可以利用Web API为后端服务提供属性路由,我想使用Nancy作为一个简单的文件服务器来提供我的角度SPA代码。
我的OWIN启动代码:
public class Startup : IOwinAppBuilder
{
public void Configuration(IAppBuilder appBuilder)
{
var config = new HttpConfiguration();
config.MapHttpAttributeRoutes();
//FormatterConfig.ConfigureFormatters(config.Formatters);
config.Formatters.Clear();
config.Formatters.Add(new JsonMediaTypeFormatter());
config.Formatters.JsonFormatter.SerializerSettings =
new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
//appBuilder.UseNancy();
appBuilder.UseWebApi(config);
}
}
我设置了一个测试控制器,其中一些端点经过了适当的装饰,用于属性路由。此时,运行应用程序并尝试达到其中一个端点会返回预期结果。
然后我试着把南希加入到等式中。我添加了一个Nancy模块,目的是提供有角度的内容:
public class HomeModule : NancyModule
{
public HomeModule()
{
Get["/"] = _ => View["home"];
}
}
在Startup中取消appBuilder.UseNancy()
行的注释并运行服务器非常适合获得主视图。然而,现在当我尝试访问API的某个端点时,Nancy似乎正在处理请求,并向我返回404页面,而不是API结果。有没有办法让Nancy和Web API一起玩得很好,这样他们的路线就不会像这样冲突?
是否测试了PerformPassThrough或PassThroughWhenStatusCodesAre in UseNancy()方法?
它被记录在与owin托管nancy的条件传递部分中。(https://github.com/NancyFx/Nancy/wiki/Hosting-nancy-with-owin#conditional-通过)