托管 MVC3 应用,仅目录列表.路由不起作用
本文关键字:列表 路由 不起作用 MVC3 应用 托管 | 更新日期: 2023-09-27 18:30:48
好的,所以部署到本地IIS我的项目工作正常。部署到在线主机,我只得到目录列表。
(
使用 VisualStudio 2012, mvc3, .net 4.5发布到 Web 设置:
- 发布方式:FTP
- 服务器:
www."mysite".co.za
- 站点路径:"空白"(我的理解是我直接发布到应用程序目录,所以我的根包含bin,views,global.asax,web.config)
- 目标网址:
http://www."mysite".co.za
- 数据库已在 web.config 中启动并配置
)
如果单击视图目录,我会收到 404 错误。
我接下来要做的是查看它是否执行global.asax,所以我添加了代码以在RegisterRoutes中抛出异常(从Application_Start()调用)
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
);
throw new Exception("This is my custom error: Currently in RegisterRoutes");
}
真的是鲍勃,我得到以下内容(但仍然只有当我点击我的视图目录):
"/"应用程序中的服务器错误。
这是我的自定义错误:当前在注册路由中
描述: 执行当前 Web 请求期间发生未经处理的异常。请查看堆栈跟踪,了解有关错误及其在代码中起源位置的详细信息。 异常详情: 系统异常:这是我的自定义错误:当前在注册路由中
所以我的问题: 1. 为什么我的根不会拾取全局.asax? 2. 如何查看路由后代码执行的位置。MapRoute(...)?(即删除抛出异常;)后)
问候
这也恰好是这样。 通常这是由于 Web 配置中缺少一些设置。 具体来说,这个问题提供了答案。 编辑 Web 配置以加载所有请求的所有托管模块。
<system.webServer><modules runAllManagedModulesForAllRequests="true"></modules></system.webServer>
您可能没有在服务器上注册 IIS。请使用 aspnet_regiis -i
注册它,然后在 IIS 中的应用程序池下检查 .net 版本。