• “/”应用程序中的服务器错误。


    “/”应用程序中的服务器错误。无法找到资源。说明: HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。
    
    请求的 URL: /XXXXXX/XXXXXXX/XXXXXX
    
    版本信息: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.17929
    
    
    解决方法
    
    1、在控制层(Controller)找到对应的视图,是视图有问题
    
    2、视图上加载到控制器方法的路径url有问题
    
    3、MVC中的错误-友好的处理方法
    
    MVC中,有一个Filter可以捕捉错误,但是它的用法是利用Attribute来实现的,而且只能加在Controller和Action上,所以不能捕捉别出的错误
    其实理论上所有的错误肯定产生于Controller中,但有2种情况下,就不会被捕捉了
    (1)、页面不存在的时候,找不到对应的Controller,那没有任何Controller被执行,所以自然也不会捕捉到错误了
    (2)、在 IAuthorizationFilter 下发生错误的时候,错误捕捉代码在IExceptionFilter中,而IAuthorizationFilter的优先权高于IExceptionFilter,所以也就捕捉不到了
      protected void Application_Error(object sender, EventArgs e)
            {
                Exception exception = Server.GetLastError();
                Response.Clear();
                HttpException httpException = exception as HttpException;
                RouteData routeData = new RouteData();
                routeData.Values.Add("controller", "Error");
                if (httpException == null)
                {
                    routeData.Values.Add("action", "Index");
                }
                else //It's an Http Exception, Let's handle it.  
                {
                    switch (httpException.GetHttpCode())
                    {
                        case 404:
                            // Page not found.  
                            routeData.Values.Add("action", "HttpError404");
                            break;
                        case 500:
                            // Server error.  
                            routeData.Values.Add("action", "HttpError500");
                            break;
                        // Here you can handle Views to other error codes.  
                        // I choose a General error template    
                        default:
                            routeData.Values.Add("action", "General");
                            break;
                    }
                }
                // Pass exception details to the target error View.  
                routeData.Values.Add("error", exception.Message);
                // Clear the error on server.  
                Server.ClearError();
                // Call target Controller and pass the routeData.  
                IController errorController = new Web.Controllers.ErrorController();
                errorController.Execute(new RequestContext(
               new HttpContextWrapper(Context), routeData));
            }  
    View Code
    
     把这段代码放到 Global.asax 中,并且新建一个 Controller 叫做 Error
      public ActionResult Index(string error)
            {
                ViewData["Title"] = "WebSite 网站内部错误";
                ViewData["Description"] = error;
                return View("Index");
            }
            public ActionResult HttpError404(string error)
            {
                ViewData["Title"] = "HTTP 404- 无法找到文件";
                ViewData["Description"] = error;
                return View("Index");
            }
            public ActionResult HttpError500(string error)
            {
                ViewData["Title"] = "HTTP 500 - 内部服务器错误";
                ViewData["Description"] = error;
                return View("Index");
            }
            public ActionResult General(string error)
            {
                ViewData["Title"] = "HTTP 发生错误";
                ViewData["Description"] = error;
                return View("Index");
            }
    View Code
    
    
    
     
    这样,就可以捕捉异常信息了
  • 相关阅读:
    luogu P4544 [USACO10NOV]Buying Feed G 斜率优化dp 双层?
    luogu P3594 [POI2015]WIL-Wilcze doły 单调队列dp+双指针
    luogu P2384 最短路 spfa+数学?
    luogu P2071 座位安排 二分图最大匹配 双重的
    luogu P1841 [JSOI2007]重要的城市 dp+Floyd
    luogu P2034 选择数字 单调队列优化dp 脑残行为,导致wa了很多遍
    【最短路-判断正权环 Floyd】Currency Exchange POJ
    【最短路-判断正权环 Bellman-Ford】Arbitrage POJ
    【最短路/矩阵+最小环】0 or 1 HDU
    【最短路+区间枚举】昂贵的聘礼 POJ
  • 原文地址:https://www.cnblogs.com/siyunianhua/p/3585384.html
Copyright © 2020-2023  润新知