将Servicestack迁移到核心,备用路由器和HandlerFactoryPath
问题描述:
将我的代码迁移到核心应用程序。将Servicestack迁移到核心,备用路由器和HandlerFactoryPath
到目前为止这么好。我知道这一切都在运行,但有一个问题。
我有一个用户界面(使用剃须刀)和使用CatchAllHandlers
。而对于API我使用HandlerFactoryPath
前缀的网址。
现在我有2个问题:
- 它似乎
CatchAllHandlers
不使用? - 如果路由以HandlerFactoryPath开头,路由才会被处理?
第二个问题是可以解决的,但我将如何解决第一个问题?
我做我自己的中间件还是服务栈支持其他方式做这件事?
答
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"));
当我删除HandlerFactoryPath的包罗万象的路由似乎工作 –
我试着去渲染现在使用部分:http://stackoverflow.com/a/39400153/1275832(ss.mvc.viewPage的子类中,但是现在这一直让我更加恶心 –