在一个应用程序中组合Web API 2和服务堆栈

时间:2016-04-28 13:05:18

标签: asp.net-web-api servicestack

我正在使用Angular 1.5和Web API 2开发应用程序,但我想切换到ServiceStack。该应用程序已在生产中运行。

我的想法是让v1使用Web API(... / api / v1 / ...),使用ServiceStack实现v2,并在一段时间后删除v1。

我想知道是否可以在一个Web主机中组合Web API 2和ServiceStack?如果不是,在没有花时间用ServiceStack一步重写整个代码的情况下,进行平滑过渡的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

查看MVC Integration文档,了解如何配置ServiceStack,以便可以与其他Web框架一起配置,例如:您可以将ServiceStack注册到/api/v2,并安装:

<location path="api/v2">
  <system.web>
    <httpHandlers>
      <add path="*" type="ServiceStack.HttpHandlerFactory, ServiceStack" 
           verb="*"/>
    </httpHandlers>
  </system.web>

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <add path="*" name="ServiceStack.Factory" 
           type="ServiceStack.HttpHandlerFactory, ServiceStack" verb="*" 
           preCondition="integratedMode" 
           resourceType="Unspecified" allowPathInfo="true" />
    </handlers>
  </system.webServer>
</location>

您还需要在ServiceStack的AppHost.Configure()中指定它:

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