我有一个简单的MVC 3 webapp,最近一直给我带来麻烦 - 我看不出任何可以帮助我的信息。我一直有两个与他们的行为有关的问题。
在开发中,它在localhost(http:// localhost:53268 /)上正常运行并且适用于索引,但在此之外执行任何操作都会使IIS返回404,忽略任何重定向到应该是正确的URL。
现在,在生产中,它的表现不同。同样,索引页面工作正常,它具有正确的URL,但任何其他页面(通过链接或直接转到URL)重定向到localhost(https:// localhost /)。奇怪的是,对我来说,它应该在开发上工作(给我看看我通常会得到404s时应该看到的东西),但在其他机器上它绝对没有任何东西。
我从一位同时离开的同事那里继承了这一点,但是给了我使用IIS Express从开发方面开始工作的建议。这之前已经在生产中工作,但现在......不是那么多。
修改 global.aspx文件
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new ElmahHandleErrorAttribute());
filters.Add(new HandleErrorAttribute());
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
}
修改 明白了。事实证明,Web.Config和服务器出现了一些问题。现在工作正常。