我有一個實際上在其他服務器上的MVC應用程序,但我沒有做部署。對於這個部署,我添加了通配符到aspnet_isapi.dll,它已經擺脫了404錯誤。但這些網頁並沒有拉上,而是一切都只是空白。我似乎無法找到任何IIS配置差異。全局asax.cs文件確實具有路由定義,但正如我在工作服務器上看到的那樣,該文件不僅僅侷限於根目錄或任何顯而易見的內容。我在這裏可能會錯過什麼?部署ASP.NET MVC到IIS6:頁面只是空白
所有的服務器都在運行IIS6,我已經比較了這些設置,在這一點上它們看起來和我一樣。
謝謝... 布萊恩
編輯迄今的評論: 我看了在沒有運氣的事件日誌,並搜遍每王志文各種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日誌是否顯示請求?事件日誌中的任何內容? – 2010-05-24 14:24:21
我剛剛完成了一個應用程序,開發時使用IIS7(所以我可以有完整的REST URL),但必須在IIS6上部署(需要.aspx頁面) 我記得爲了使它工作的唯一修改是添加IIS 6可以處理的特定路由。 (「MyPage」,「MyPage/...」) routes.MapRoute(「MyPage.aspx」,「MyPage.aspx/...」) – Justin 2010-05-24 14:52:31