gpt4 book ai didi

c# - OWIN 中的 Nancy 和 WebAPI 自托管冲突路由

转载 作者:行者123 更新时间:2023-11-30 21:52:43 27 4
gpt4 key购买 nike

我是第一次使用 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);
}
}

我有一个测试 Controller ,其中设置了一些端点,这些端点经过适当修饰以用于属性路由。此时运行应用程序并尝试访问这些端点之一会返回预期结果。

然后我尝试将 Nancy 添加到等式中。我添加了一个 Nancy 模块,目的是它可以提供角度内容:

public class HomeModule : NancyModule
{
public HomeModule()
{
Get["/"] = _ => View["home"];
}
}

在 Startup 中取消注释 appBuilder.UseNancy() 行并运行服务器可以完美地获得主页 View 。但是,现在当我尝试访问其中一个 API 端点时,Nancy 似乎开始处理请求并返回 404 页面而不是 API 结果。有没有办法让 Nancy 和 Web API 一起玩得很好,这样他们的路由就不会像这样冲突?

最佳答案

您是否在 UseNancy() 方法中测试了 PerformPassThrough 或 PassThroughWhenStatusCodesAre?

它记录在使用 owin 托管 nancy 的条件传递部分。 ( https://github.com/NancyFx/Nancy/wiki/Hosting-nancy-with-owin#conditional-pass-through )

关于c# - OWIN 中的 Nancy 和 WebAPI 自托管冲突路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34549580/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com