我第一次与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添加到公式中。我添加了一个Nancy Module,旨在满足角度的需求:
public class HomeModule : NancyModule
{
public HomeModule()
{
Get["/"] = _ => View["home"];
}
}
取消注释“启动”中的
appBuilder.UseNancy()
行并运行服务器非常适合获得主视图。但是,现在,当我尝试访问API端点之一时,Nancy似乎正在处理请求并返回404页面而不是API结果。有没有一种方法可以使Nancy和Web API很好地配合使用,以使它们的路由不会像这样发生冲突? 最佳答案
您是否在UseNancy()方法中测试了PerformPassThrough或PassThroughWhenStatusCodesAre?
使用owin在Hosting nancy的条件通过部分中进行了记录。 (https://github.com/NancyFx/Nancy/wiki/Hosting-nancy-with-owin#conditional-pass-through)
关于c# - OWIN自宿主路由中的Nancy和Web API冲突,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34549580/