【问题标题】:Servicestack migration to core, fallback router and HandlerFactoryPathServicestack 迁移到核心、回退路由器和 HandlerFactoryPath
【发布时间】:2016-11-16 12:38:28
【问题描述】:

我正在将我的代码迁移到核心应用程序。

到目前为止一切顺利。我已经全部运行了,但是有一个问题。

我有一个用户界面(带有剃须刀)并使用CatchAllHandlers。对于 api,我使用 HandlerFactoryPath 为网址添加前缀。

现在我有两个问题:

  • 好像CatchAllHandlers没用?
  • 仅当路由以 HandlerFactoryPath 开头时才会处理路由?

第二个问题是可以解决的,但我该如何解决第一个问题?

我是自己制作中间件还是 servicestack 支持其他方式?

【问题讨论】:

  • 当我删除 HandlerFactoryPath 时,包罗万象的路由似乎工作
  • 我现在正在尝试渲染部分内容:stackoverflow.com/a/39400153/1275832(在 ss.mvc.viewPage 的子类中。但这现在总是让我出错

标签: razor asp.net-core servicestack


【解决方案1】:

CatchAllHandlers在.NET Core中执行,也是ServiceStack的new MVC RazorFormat uses to process Content Pages

指定HandlerFactoryPath,例如:

SetConfig(new HostConfig {
    HandlerFactoryPath = "api"
});

告诉 ServiceStack 你只想监听来自/api 路径信息的请求。所有其他请求都通过 ServiceStack 传递,ServiceStack 根据 .NET Core 的约定在未配置为处理路由时调用 .NET Core 管道中的下一个模块。

不确定它是否与您的解决方案相关,但在 ServiceStack .NET Core 中,您可以注册一个 ServiceStack Handler in .NET Core module pipeline,例如,您可以为 ServiceStack 未处理的每个请求返回一个 /default.cshtml Content Razor 页面,方法是在之后注册它服务栈:

app.UseServiceStack(new AppHost());

app.Use(new RazorHandler("/default"));

【讨论】:

    猜你喜欢
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 2021-02-13
    • 2011-09-14
    相关资源
    最近更新 更多