我有一个简单的 MVC 3 webapp,最近给我带来了麻烦——而且我看起来似乎没有任何信息可以帮助我。我一直有两个问题似乎与他们的行为方式有关。
在开发中,它在 localhost (http://localhost:53268/) 上开始正常并适用于索引,但在此之外执行任何操作都会使 IIS 返回 404,而忽略任何重定向到应该是正确 URL 的内容。
现在,在生产中,它的行为有所不同。同样,索引页面工作正常,它具有正确的 URL,但任何其他页面(通过链接或直接转到 URL)都会重定向到 localhost (https://localhost/)。对我来说奇怪的是,它在开发中正常工作(给了我通常得到 404 时应该看到的内容),但在其他机器上它完全没有提供任何东西。
我从一个已经离开的同事那里继承了这个,但给了我使用 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 存在一些问题,而且它所在的服务器弄错了。现在工作正常。