C# .net framework 如何自訂錯誤頁面
在使用C#建立.NET Framework網站專案時,預設的錯誤頁面會顯示編譯器提供的錯誤訊息,使開發者能夠輕鬆地查詢問題並讓客戶方便回報問題給開發者進行修正。儘管這樣的設計初衷是良好的,但考慮到近年來網路攻擊日益頻繁,弱點掃描將顯示預設錯誤頁面列為高風險事項。這是因為預設錯誤頁面可能會將敏感的錯誤訊息暴露給用戶,進而讓攻擊者發現網站的弱點並進一步進行攻擊。因此,我們需要使用自訂的錯誤頁面,以隱藏實際的錯誤訊息,並提供更安全的使用體驗。
seen from United States
seen from Ireland

seen from United States
seen from Argentina

seen from United States
seen from Germany

seen from Russia
seen from Argentina
seen from United States
seen from Italy

seen from Canada
seen from Brazil
seen from Argentina

seen from Peru

seen from Russia
seen from Switzerland
seen from United States

seen from Australia
seen from Singapore
seen from United States
C# .net framework 如何自訂錯誤頁面
在使用C#建立.NET Framework網站專案時,預設的錯誤頁面會顯示編譯器提供的錯誤訊息,使開發者能夠輕鬆地查詢問題並讓客戶方便回報問題給開發者進行修正。儘管這樣的設計初衷是良好的,但考慮到近年來網路攻擊日益頻繁,弱點掃描將顯示預設錯誤頁面列為高風險事項。這是因為預設錯誤頁面可能會將敏感的錯誤訊息暴露給用戶,進而讓攻擊者發現網站的弱點並進一步進行攻擊。因此,我們需要使用自訂的錯誤頁面,以隱藏實際的錯誤訊息,並提供更安全的使用體驗。
找到多个与名为“Home”的控制器匹配的类型。
当在MVC中添加多个Areas的时候,如果Area下面的控制器的类名和控制器和全局的某个控制的类名和控制器名称相同的时候,打开全局的url的时候,会出现类似的情况。
修改主程序的Global.asax文件:
原来是
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 } // 参数默认值 );
}
修改后加一行
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 }, // 参数默认值 new string[] { "MvcApplication1.Controllers" } //主程序和Area的Controllers重名,所以在此加上完整命名空间区分。 );
}
“/”应用程序中的服务器错误。
找到多个与名为“Home”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由在搜索匹配此请求的控制器时没有指定命名空间,则会发生此情况。如果是这样,请通过调用含有“namespaces”参数的“MapRoute”方法的重载来注册此路由。 “Home”请求找到下列匹配的控制器: MvcApplication2.Controllers.HomeController MvcApplication1.Controllers.HomeController
说明:
执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:
System.InvalidOperationException: 找到多个与名为“Home”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由在搜索匹配此请求的控制器时没有指定命名空间,则会发生此情况。如果是这样,请通过调用含有“namespaces”参数的“MapRoute”方法的重载来注册此路由。
“Home”请求找到下列匹配的控制器:
MvcApplication2.Controllers.HomeController
MvcApplication1.Controllers.HomeController
源错误:
执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
[InvalidOperationException: 找到多个与名为“Home”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由在搜索匹配此请求的控制器时没有指定命名空间,则会发生此情况。如果是这样,请通过调用含有“namespaces”参数的“MapRoute”方法的重载来注册此路由。 “Home”请求找到下列匹配的控制器: MvcApplication2.Controllers.HomeController MvcApplication1.Controllers.HomeController] System.Web.Mvc.DefaultControllerFactory.GetControllerType(RequestContext requestContext, String controllerName) +566831 System.Web.Mvc.DefaultControllerFactory.System.Web.Mvc.IControllerFactory.GetControllerSessionBehavior(RequestContext requestContext, String controllerName) +72 System.Web.Mvc.MvcRouteHandler.GetHttpHandler(RequestContext requestContext) +46 System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context) +12761271 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165
版本信息:
Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.18446
Hitting Breakpoints in Global.asax using Visual Studio
Hitting Breakpoints in Global.asax using Visual Studio
In a recent article, Shahed Chowdhuri asks what will happen if you create a breakpoint in the Global.asax file.
Every .NET developer should know how to set breakpoints in Visual Studio 2012.
Right-click a line in your code, then select Breakpoint -> Insert Breakpoint.
Or, simply press F9 after placing your cursor on the line of code.
But, what if that line of code is in your Global.asax code?…
View On WordPress