we use WebWpi in Kentico 8.1 as well and we noticed poor performance at application start caused by WebApi and we had to customize it a little in order to make it perform better. To be more specific, when application starts, WebApi browses through all assemblies and tries to find classes deriving from ApiController. As our code base is fairly large, this lookup took too long and we needed to replace the default WebApi
IHttpControllerTypeResolver with our implementation which looks only for explicitly registered controllers.
You have two options how to make your API work:
Option 1: Register all of your controllers with the
RegisterApiController assembly attribute.
internal sealed class LiveTileController : ApiController
You will need to reference CMS.WebApi assembly to do that.
Option 2: Use newer version of WebApi than we use - that would be version 2 (assembly 5.2.2)
I apologize for the inconvenience this issue caused you. We are thinking how to improve this in Kentico 8.2. One of the solutions we are looking at, is to require registration only for our libraries and always go through all classes in customer's libraries including CMSApp_MVC.