title: /signalr/hubs 404 not found after update to MVC5
body: <p>SignalR was working while project was ASP.NET MVC3. Now i upgraded it to MVC5 (not so easy to do, I must tell you).</p>
  
  <p>Then I noticed that signalR was not working. I went by the book, reinstalled SignalR to version 2.1.0, installed OWIN (must-have for v2+) and added startup class to project. </p>
  
  <p>This is my startup.cs class, it sits at project root folder:</p>
  
  <pre><code>[assembly: OwinStartup(typeof(SISTEM.Startup))]
  namespace SISTEM
  {
      public class Startup
      {
          public void Configuration(IAppBuilder app)
          {
              app.MapSignalR();
          }
      }
  }
  </code></pre>
  
  <p>I see no problem here, but maybe i am missing something...</p>
  
  <p>Now here is snippet from the hub:</p>
  
  <pre><code>namespace SISTEM
  {
      public class PostingHub : Hub
      {
          public void Test(string hello)
          {
              Clients.All.hello(hello);
          }
      }
  }
  </code></pre>
  
  <p>Then i reference generated proxys in view:</p>
  
  <pre><code>&lt;script src="~/Scripts/jquery.signalR-2.1.0.min.js"&gt;&lt;/script&gt;
  &lt;script src="~/signalr/hubs"&gt;&lt;/script&gt;
  </code></pre>
  
  <p>I inspect it in fiddler and i can see that /signalr/hubs request is generating HTTP 404 not found.</p>
  
  <p>Now, i wasn't lazy, i tried several things:</p>
  
  <ul>
  <li>Patch IIS for extensionless URLs - Shouldn't be a problem since I'm using win8</li>
  <li>Call RouteTable.Routes.MapHubs() before RegisterRoutes(RouteTable.Routes) - VS won't allow it. Gives me an error saying that's obsolete, use OWIN.</li>
  <li>Downloaded tool for generating javascript proxies (SignarR Utils), so i can manually reference them later. Tried to generate, went with no error, but generated js was empty. Tried several times. This was for me most interesting. Maybe  for some reason proxy cannot be generated.</li>
  </ul>
  
  <p>Any help would be appreciated.</p>
  
  <p>UPDATE: Response from /signalr/hubs</p>
  
  <pre><code>&lt;!DOCTYPE html&gt;
  &lt;html&gt;
  &lt;head&gt;
      &lt;title&gt;The resource cannot be found.&lt;/title&gt;
      &lt;meta name="viewport" content="width=device-width" /&gt;
  &lt;/head&gt;
  
  &lt;body bgcolor="white"&gt;
  
          &lt;span&gt;&lt;H1&gt;Server Error in '/' Application.&lt;hr width=100% size=1 color=silver&gt;&lt;/H1&gt;
  
          &lt;h2&gt; &lt;i&gt;The resource cannot be found.&lt;/i&gt; &lt;/h2&gt;&lt;/span&gt;
  
          &lt;font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "&gt;
  
          &lt;b&gt; Description: &lt;/b&gt;HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. &amp;nbsp;Please review the following URL and make sure that it is spelled correctly.
          &lt;br&gt;&lt;br&gt;
  
          &lt;b&gt; Requested URL: &lt;/b&gt;/signalr/hubs&lt;br&gt;&lt;br&gt;
  
          &lt;hr width=100% size=1 color=silver&gt;
  
          &lt;b&gt;Version Information:&lt;/b&gt;&amp;nbsp;Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34212
  
          &lt;/font&gt;
  
  &lt;/body&gt;
  </code></pre>
  
  <p></p>
  
  <pre><code>[HttpException]: The controller for path &amp;#39;/signalr/hubs&amp;#39; was not found or does not implement IController.
  at System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType)
  at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName)
  at System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController&amp; controller, IControllerFactory&amp; factory)
  at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state)
  at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state)
  at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
  at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
  at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously)
  </code></pre>