将Servicestack迁移到核心,备用路由器和HandlerFactoryPath

问题描述:

将我的代码迁移到核心应用程序。将Servicestack迁移到核心,备用路由器和HandlerFactoryPath

到目前为止这么好。我知道这一切都在运行,但有一个问题。

我有一个用户界面(使用剃须刀)和使用CatchAllHandlers。而对于API我使用HandlerFactoryPath前缀的网址。

现在我有2个问题:

  • 它似乎CatchAllHandlers不使用?
  • 如果路由以HandlerFactoryPath开头,路由才会被处理?

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

我做我自己的中间件还是服务栈支持其他方式做这件事?

+0

当我删除HandlerFactoryPath的包罗万象的路由似乎工作 –

+0

我试着去渲染现在使用部分:http://stackoverflow.com/a/39400153/1275832(ss.mvc.viewPage 的子类中,但是现在这一直让我更加恶心 –

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

指定HandlerFactoryPath,e.g:

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

告诉ServiceStack你只想要听从/api路径信息的请求。所有其他请求都通过ServiceStack传递,ServiceStack根据.NET Core的惯例在.NET Core流水线中调用下一个模块,但未配置为处理路由。

不知道,如果是相关的解决方案,但在ServiceStack .NET的核心,你可以通过ServiceStack后对其进行注册登记ServiceStack Handler in .NET Core module pipeline所以你可以例如返回/default.cshtml内容剃刀页面,这不是由ServiceStack处理的每个请求的,:

app.UseServiceStack(new AppHost()); 

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