IIS Hosting

Register ServiceStack ASP.NET HttpHandler​

ServiceStack integrates with your existing ASP.NET Web Application by registering an ASP.NET HttpHandler used to route HTTP requests to ServiceStack. The configuration below supports both IIS/6.0 and Mono as well as IIS7+ new handler mappings under <system.webServer>:

Configure ServiceStack at / root path​

Add this configuration in your Web.config to host ServiceStack at the / root path:

<!-- For IIS 6.0/Mono -->
<system.web>
  <httpHandlers>    
    <add path="*" type="ServiceStack.HttpHandlerFactory, ServiceStack" 
         verb="*"/>
  </httpHandlers>
</system.web>

<!-- For IIS 7.0+ -->
<system.webServer>
  <validation validateIntegratedModeConfiguration="false" />
  <handlers>
    <add path="*" name="ServiceStack.Factory" preCondition="integratedMode" 
         type="ServiceStack.HttpHandlerFactory, ServiceStack" 
         verb="*" resourceType="Unspecified" allowPathInfo="true" />
  </handlers>
</system.webServer>

Tip

If you want to host your webservice on a custom path to avoid conflicts with another web framework (eg ASP.Net MVC), see Run ServiceStack side-by-side with another Framework

INFO

Due to limitations in IIS 6 - host ServiceStack at a /custompath which must end with .ashx, e.g: path="api.ashx"

Configure ServiceStack at /api custom path​

If you want to use ServiceStack together with an existing ASP.NET Web Framework, you can instead host ServiceStack at /api path with:

<location path="api">
  <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>

To use ServiceStack together with ASP.NET MVC follow the steps in the Mvc integration docs.

Troubleshooting​

Disable WebDAV to enable PUT and DELETE Verbs​

If you are running IIS 7.5 you may need to disable the WebDAV module to enable PUT and DELETE verbs. You can do this globally through IIS or locally through a web.config.

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true">
    <remove name="WebDAVModule" />
  </modules>
</system.webServer>