托管的MVC3应用程序,只有目录列表。路由不起作用?
托管的MVC3应用程序,只有目录列表。路由不起作用?
好的,那么将项目部署到本地IIS后,一切正常。但将其部署到在线主机时,我只能看到目录列表。
(使用VisualStudio 2012、mvc3、.net 4.5
发布到Web的设置:
- 发布方法:FTP
- 服务器:
www."mysite".co.za
- 站点路径:"blank"(我的理解是我直接发布到应用程序目录,所以我的根目录包含bin、views、global.asax、web.config)
- 目标URL:
http://www."mysite".co.za
- 数据库已在web.config中配置好
)
如果单击"Views"目录,我会收到404错误。
接下来我做的是查看global.asax是否会执行,所以我在RegisterRoutes(从Application_Start()调用)中添加了抛出异常的代码
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // 路由名称 "{controller}/{action}/{id}", // 带参数的URL new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值 ); throw new Exception("这是我的自定义错误:当前在RegisterRoutes中"); }
然后我得到了以下结果(但只有在我点击我的View目录时才会得到):
服务器错误。
这是我的自定义错误:当前在RegisterRoutes中
描述:在当前网络请求的执行过程中发生了一个未处理的异常。请查看堆栈跟踪以获取有关错误的更多信息以及错误在代码中的起源位置。
异常详细信息:System.Exception: 这是我的自定义错误:当前在RegisterRoutes中
所以我的问题是:
1. 为什么我的根目录没有识别到global.asax?
2. 如何查看在routes.MapRoute(...)之后代码的执行结束位置?(即在删除throw Exception之后)
谢谢