我有一个自托管应用程序,其中设置了许多路由。我想知道在启动应用程序时是否可以使用/api/<route>
为每条路由添加前缀,而不是遍历每个路由并将路由更改为<route>
,其中/api
是现有路由?我知道它可以在IIS托管的环境中设置web.config
,但我不确定它是否可以在自托管环境中使用?
答案 0 :(得分:5)
@ EliGassert的答案适用于ServiceStack v4自托管应用程序。这是更改ServiceStack v3自托管应用程序中所有路由的基本路径的要求。
在AppHost Configure
方法中,您需要将ServiceStackHanderFactoryPath
设置为所需的前缀。
public override void Configure(Container container)
{
SetConfig(new EndpointHostConfig {
ServiceStackHandlerFactoryPath = "api"
});
}
设置监听器时,还必须附加前缀:
appHost.Start("http://*:9000/api/");
希望有所帮助。
答案 1 :(得分:4)
根据this ServiceStack article,您只需通过配置进行设置,如下所示:
public override void Configure(Container container)
{
SetConfig(new HostConfig { HandlerFactoryPath = "api" });
}
将其与此answer from Mythz相结合,您可以在/api/
获得自行托管的应用:
_apphost.Start("http://localhost:1337/api/");
注意:这似乎适用于自托管API,但它无法提供其剃刀页面。所以这不太正确。仍然,现在留下答案,直到找到完整的解决方案。