title: Web api interface works locally but not on Azure
body: <p>My case is very similar to <a href="https://stackoverflow.com/questions/13418344/web-api-interface-works-locally-but-gets-404-after-deployed-to-azure-website%20this%20question">this question</a>, but since he did not get an answer I thought I'd throw some more input.</p>
  
  <p>Everything works fine locally (on the VS embedded server). When I deploy to Azure, I get a 404 error accompanied by "No type was found that matches the controller named...".</p>
  
  <p>However, when I load the <a href="http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx%20routedebugger" rel="nofollow noreferrer">routedebugger</a> module the mapping seems ok even on Azure.</p>
  
  <p>What can I do to debug that problem?</p>
  
  <p>Thanks,</p>
  
  <p>Alex</p>
  
  <p>Edit: my routes are created this way:</p>
  
  <pre><code>            GlobalConfiguration.Configuration.Routes.MapHttpRoute(
                  name: "DefaultApi",
                  routeTemplate: "api/{controller}/{id}",
                  defaults: new { id = RouteParameter.Optional }
              };
              GlobalConfiguration.Configuration.Routes.MapHttpRoute(
                  name: "ActionApi",
                  routeTemplate: "api/{controller}/{action}/{id}",
                  defaults: new { id = RouteParameter.Optional }
              );
  </code></pre>
  
  <p>Edit 2: Here my controller class</p>
  
  <pre><code>    public class EmployeeController : ApiController
  {
      // GET api/&lt;controller&gt;
      public IEnumerable&lt;Employee&gt; Get()
      {
          using (var context = new nws())
          {
              return context.Employees;
          }
      }
  
      // GET api/&lt;controller&gt;/5
      public Employee Get(int id)
      {
          using (var context = new nws())
          {
              return context.Employees.FirstOrDefault(e =&gt; e.ID == id);
          }
      }
  
      // GET api/&lt;controller&gt;/getbyatid/5
      public Employee GetByAtId(string id)
      {
          using (var context = new nws())
          {
              return context.Employees.FirstOrDefault(e =&gt; e.AtUserID == id);
          }
      }
  
      // POST api/&lt;controller&gt;
      public void Post([FromBody]string value)
      {
      }
  
      // PUT api/&lt;controller&gt;/5
      public void Put(int id, [FromBody]string value)
      {
      }
  
      // DELETE api/&lt;controller&gt;/5
      public void Delete(int id)
      {
      }
  
      // GET api/&lt;controller&gt;/timebank/5
      public int? GetTimeBank(string id)
      {
          using (var context = new nws())
          {
              var employee = context.Employees.FirstOrDefault(e =&gt; e.AtUserID == id);
              if (employee != null)
                  return employee.GetTimeBank();
              return null;
          }
      }
  }
  </code></pre>