ASP.NET MVC页面将无法加载并说"无法找到资源"

skb*_*skb 30 c# asp.net asp.net-mvc

我有一个问题,我尝试打开我的ASP.NET MVC应用程序,但我得到的ASP.NET错误页面说:

'/'应用程序中的服务器错误.

无法找到该资源.说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用.请查看以下网址,确保拼写正确.

请求的URL:/EventScheduler/account.aspx/login

版本信息:Microsoft .NET Framework版本:2.0.50727.3053; ASP.NET版本:2.0.50727.3053**

我正在使用此博客帖子中的URL技巧,这就是为什么我在URL中有.aspx:

http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/

它适用于我的其他沙盒服务器(不是开发机器),现在我只是将它作为新的虚拟目录部署到我的生产站点,但由于某种原因,它似乎实际上正在寻找.aspx文件.

有任何想法吗?我想我一定是忘记了一步.

小智 14

我找到了解决这个问题的方法,你不必删除global.asax,因为它包含一些有价值的信息,让你的proyect顺利运行,而是查看你的控制器的名字,在我的情况下,我的控制器被命名了作为MyController.cs的东西,在global.asax中,它试图引用一个Home Controller.

在全局的asax中寻找这一行

routes.MapRoute(
   "Default", // Route name
   "{controller}/{action}/{id}", // URL with parameters
   new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我必须得到这样的工作

    new { controller = "My", action = "Index", id = UrlParameter.Optional }
Run Code Online (Sandbox Code Playgroud)

希望这也能解决您的问题.

干杯


小智 12

我在构建时遇到了同样的错误.默认设置是使用URLRoute设置进行导航.如果通过右键单击任何cshtml页面选择"设置为启动页面"属性,则会抛出此错误,因为始终在Global.asax文件下指向当前页面.

查看"启动路径的项目属性"并将其删除.


小智 5

确保在提供文件之前,不要告诉IIS检查并查看文件是否存在.这个人咬了我几次.请执行下列操作:

打开IIS管理器.右键单击您的MVC网站,然后单击属性.打开"虚拟目录"选项卡.单击配置...按钮.在通配符应用程序映射下,确保您有映射到c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll.确认"验证文件存在"未检查!

  • 是的,它确实.最小字符长度很糟糕. (2认同)
  • 我尝试了这个,但 Windcard 应用程序地图不存在。我添加了,确保取消选中“验证文件存在”复选框,但我仍然遇到同样的问题。 (2认同)

小智 5

您应该仔细检查您的路线值。

routes.MapRoute(
   "Default", // Route name
   "{controller}/{action}/{id}", // URL with parameters
   new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
Run Code Online (Sandbox Code Playgroud)

在这种情况下,请确保您有控制器“Home”,因为如果没有带有 Index Action 的 HomeController,应用程序将无法加载。就我而言,我有 HomesController,但我错过了 Home 前面的 's'。我修复了名称不匹配的问题,这解决了我的本地环境和服务器上的问题。