C# OWIN自宿主冲突路由中的Nancy和WebAPI

C# OWIN自宿主冲突路由中的Nancy和WebAPI,c#,asp.net-web-api,owin,nancy,C#,Asp.net Web Api,Owin,Nancy,我第一次和OWIN一起做了一些工作,并试图设置一些东西,以便我可以利用Web API和属性路由为后端服务,我想使用Nancy作为一个简单的文件服务器来提供我的angular SPA代码 我的OWIN启动代码: public class Startup : IOwinAppBuilder { public void Configuration(IAppBuilder appBuilder) { var config = new HttpConfiguration()

我第一次和OWIN一起做了一些工作,并试图设置一些东西,以便我可以利用Web API和属性路由为后端服务,我想使用Nancy作为一个简单的文件服务器来提供我的angular 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"];
    }
}

在启动和运行服务器时,取消对appBuilder.UseNancy()中的
appBuilder.UseNancy()行的注释非常有助于获得主视图。然而,现在当我尝试访问其中一个API端点时,Nancy似乎正在介入并处理请求,并返回404页而不是API结果。有没有办法让Nancy和WebAPI配合得很好,这样他们的路线就不会像这样冲突

您是否测试了PerformPassThrough或PassThroughHenStatusCodes in Useancy()方法


它记录在owin托管nancy的条件传递部分。()

为什么需要两个框架来解决一个问题。使用Nancy或Web API。不,我不知道这些重载,但它们看起来很有前途。明天我会尝试一下,如果成功的话,我会把这个作为答案。谢谢:D