有ServiceStack默认路由转到MVC3控制器
我已经安装ServiceStack.Host.MVC
到一个现有的MVC3项目,有很多控制器。有ServiceStack默认路由转到MVC3控制器
它现在路由到default.htm。我发现另一个StackOverFlow问题说要更改默认重定向路径,请执行以下操作。
SetConfig(new EndpointHostConfig {DefaultRedirectPath = "/Foo" });
但我真的想改变它来执行默认的Controller和Action作为global.ascx中的设置。我已经编辑DefaultRedirectPath指向/主页,它似乎工作正常,并没有添加主页到我的网址或任何东西,但我不是100%的应用程序在我的应用程序之间的关系。
如果改变这不是正确的做法,那么开始将一些Service Stack AppHost与常规MVC应用程序集成的最佳方式是什么?我将把我的基本控制器移动到ServiceStackController
,并慢慢开始使用新的会话和用户管理内容。最终,我想要使用授权或共享sessionId与一些服务,但我会在稍后谈到。
首先,我的目标是开始使用Funq的一些IOC功能。
ServiceStack BootstrapAPI应用程序将CatchAllController设置为MVC应用程序的HomeController。这对我有效。
在APPHOST ::配置,我把下面的代码:
public override void Configure(Funq.Container container)
{
// Other Configuration constructs here
ServiceStackController.CatchAllController = reqCtx => container.TryResolve<HomeController>();
}
您可能不需要DefaultRedirectPath,因为它只是一个重定向到预定义的URL。你需要让你的MVC控制器在使用你的旧URL的时候点击,并为ServiceStack创建一个新的URL区域。为此,start by setting ServiceStackHandlerFactoryPath
。它应该让你主持ServiceStack在子URL,它不会与现有的控制器干涉,除非有路径冲突:
SetConfig(new EndpointHostConfig { ServiceStackHandlerFactoryPath = "api" });
在web.config中ServiceStack HTTP处理程序将需要以匹配:
<location path="api">
<!-- Required for IIS 7.0 -->
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add path="*" name="ServiceStack.Factory" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" />
</handlers>
</system.webServer>
</location>
的NuGet包这样做,我默认。 Service Stack服务的东西挂在/ api之外。但是,在我的常规MVC应用程序加载之前,AppHost仍然在做一些东西......而这正是我想要更好地理解的东西。 – taudep 2013-02-15 17:46:13
它做什么“东西”?你确切的问题是什么? – driis 2013-02-15 17:47:52
AppHost正在加载并重定向到default.htm,我通过设置DefaultRedirectPath =“/ Home”来更改它。我将重新编辑我的问题,但我只想验证在我的global.aspx代码之前运行的AppHost是否是正确的顺序,并且以适当的方式设置默认的redirectPath以启动与现有MVC站点代码的集成。我花了很多时间用SocialBootstrapApi尝试并理解这一切。即使我将SS处理程序挂在/ api之外,我仍然希望能够将AppHost的东西集成到我的常规应用程序中。 – taudep 2013-02-15 17:55:32