我不是ASP.NET MVC的新手,但我有一个非常奇怪的问题,我无法解决。我在SO和更远的地方检查了大多数其他相关查询,但我还没有找到解决方案。我有一个非常简单的ASP.NET MVC 3应用程序在Cassini下运行,它运行正常,直到我添加了log4net日志记录。我已经删除了所有对log4net的引用以尝试将其恢复,但我总是得到错误:
>'/'应用程序中的服务器错误。 无法找到该资源。 HTTP 404.您正在寻找的资源(或其中一个依赖项)可能已被删除...这是结果,无论请求哪个网址。
该应用程序仍然具有原始HomeController,Index.cshtml等以及来自标准“开箱即用”Visual Studio 2010模板的默认路由。
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
);
}
我已经检查并仔细检查了没有文件丢失(例如css或js文件),这是阻止我在这个问题上继续前进的另一个问题是在尝试调试它时没有遇到任何断点。实际上,如果我在Application_Start方法的第一行放置断点并开始调试,则根本不会触发断点,并出现第二个断点(参见下图)!
即使我进行了清理和重建,也会发生这种情况。 我已经尝试过使用Phil Haacks Route Debugger,但仍然得到相同的错误,并且Application_Start断点未被命中这一事实让我怀疑我的web.config。我已经多次检查过,实际上是用我的托管网站上的web.config替换了它,应用程序运行正常,但在我的开发设置上仍然得到相同的结果。 我已经检查过属性中没有StartUp页面。 我想添加更多功能,并能够在部署到我的托管网站之前调试它,但这阻止了我。
开始调试时是否有人遇到断点?考虑到症状,你会从哪里开始寻找问题的根源?
答案 0 :(得分:0)
刚刚解决了它,所以对于那些可能会绊倒这个的人,我已经注意到了下面的原因。然而,在没有调试或跟踪可用的情况下,我找到问题的方法可能更有价值。由于它仍然是一个小网站,我决定创建另一个标准的“开箱即用”MVC 3应用程序并手动比较文件。文件之间似乎没有区别,但在进行此练习时,我注意到在问题应用程序中,Global.asax文件位于Views文件夹中!我必须无意中移动它们 - 它不是立即显而易见的因为Views文件夹总是被扩展并且看了一眼,看起来Global.asax文件位于正确的位置,因为它们通常位于Views文件夹的正下方(只是没有在Views文件夹中缩进它们。)
无论如何,由我引起的问题却引起了一些奇怪的行为!