I am developing an ASP.NET MVC page. Debugging on my development machine with IIS Express works just fine, start page is localhost:xxxx/Home/Index.
After publishing on "real" IIS (different machine, version 8.5), the start page does not have the correct URL. The page of Home/Index is displayed but shows simply as http://[servername]:[port]. Route /Home/Index does not seem to be applied.
Problem: the page is using AJAX for an autocomplete field. Of course the action is then "not found", because in the AJAX call, the URL is wrong (controller name missing).
I put an action link on top that results in /Home/Index. I click it, /Home/Index is properly used and displayed, autocomplete works as expected.
Is this some mistake I made in IIS config or in my ASP.NET MVC application?
My RouteConfig:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Index",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
Global.asax:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
Since everything else failed, I decided: why not do it in a simple way. Did this now:
All other suggested attempts had no effect.