【发布时间】:2010-05-24 13:55:28
【问题描述】:
我有一个 MVC 应用程序,它实际上位于其他几台服务器上,但我没有进行部署。对于此部署,我已将通配符添加到 aspnet_isapi.dll 中,从而消除了 404 错误。但是页面并没有拉起来,而是一切都是空白的。我似乎找不到任何 IIS 配置差异。 Global asax.cs 文件确实定义了路由,但正如我在工作服务器上看到的那样,该文件不只是挂在根目录或任何如此明显的地方。我会在这里遗漏什么?
所有服务器都在运行 IIS6,我已经比较了设置,此时它们在我看来是一样的。
谢谢... 布莱恩
迄今为止对 cmets 的编辑: 我查看了事件日志但没有运气,并根据 David Wang 搜索了各种 IIS 日志:blogs.msdn.com。
下面是 Global.asax.cs 文件...
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("error.axd"); // for Elmah
// For deployment to IIS6
routes.Add(new Route
(
"{controller}.mvc/{action}/{id}",
new RouteValueDictionary(new { action = "Index", id = (string)null }),
new MvcRouteHandler()
));
routes.MapRoute(
"WeeklyTimeSave",
"Time/Save",
new { controller = "Time", action = "Save" }
);
routes.MapRoute(
"WeeklyTimeAdd",
"Time/Add",
new { controller = "Time", action = "Add" }
);
routes.MapRoute(
"WeeklyTimeEdit",
"Time/Edit/{id}",
new { controller = "Time", action = "Edit", id = "" }
);
routes.MapRoute(
"FromSalesforce",
"Home/{id}",
new { controller = "Home", action = "Index", id = "" });
routes.MapRoute(
"Default2",
"{controller}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
}
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
}
}
也许这和 asax 文件不在它需要的地方一样愚蠢,但如果我现在知道的话。
【问题讨论】:
-
IIS 日志是否显示请求?事件日志中有任何内容吗?
-
我刚刚完成了一个应用程序,该应用程序在开发时使用 IIS7(所以我可以拥有完整的 REST url),但必须部署在 IIS6 上(需要一个 .aspx 页面)我记得做的唯一修改使其工作是添加 IIS 6 可以处理的特定路由。 routes.MapRoute("MyPage", "MyPage/...") routes.MapRoute("MyPage.aspx", "MyPage.aspx/...")
标签: asp.net asp.net-mvc iis-6