asp.net-mvc – 添加ELMAH并更改elmah.mvc.route后,旧路由仍然可
发布时间:2020-12-15 22:30:06 所属栏目:asp.Net 来源:网络整理
导读:我已经将ELMAH添加到我的ASP.NET MVC 4 .Net 4 Web应用程序中. 整合很简单,效果很好. 我已将web.config的应用程序设置中的“elmah.mvc.route”值更改为“Admin / SiteLog”路由 – 此时此路径上显示elmah日志 但是,由于某些原因,它仍然显示在“/ elmah”(没
我已经将ELMAH添加到我的ASP.NET MVC 4 .Net 4 Web应用程序中.
整合很简单,效果很好. 我已将web.config的应用程序设置中的“elmah.mvc.route”值更改为“Admin / SiteLog”路由 – 此时此路径上显示elmah日志 但是,由于某些原因,它仍然显示在“/ elmah”(没有css样式,但内容相同). 如何禁用默认的elmah路由? 使用Elmah.MVC nuget包进行集成 解决方法
发生这种情况是因为默认路由(假设您有一个)仍将与Elmah.Mvc.ElmahController匹配.
routes.MapRoute( "Default",// Route name "{controller}/{action}/{id}",// URL with parameters new { controller = "Home",action = "Index",id = UrlParameter.Optional }); 无论您是否想要,路线的“{controller}”部分都会找到匹配的控制器.在这种情况下,这显然是有问题的. 您可以使用IRouteConstraint(概述为here)在路由上添加约束.NotEqual约束实际上非常有用. using System; using System.Web; using System.Web.Routing; public class NotEqual : IRouteConstraint { private string _match = String.Empty; public NotEqual(string match) { _match = match; } public bool Match(HttpContextBase httpContext,Route route,string parameterName,RouteValueDictionary values,RouteDirection routeDirection) { return String.Compare(values[parameterName].ToString(),_match,true) != 0; } } 因此,使用以下内容将ElmahController从默认路由中排除. routes.MapRoute( "Default",id = UrlParameter.Optional },new { controller = new NotEqual("Elmah") }); 这将使“/ elmah”的请求返回404. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 在“@”字符后面出现意外的“foreach”关
- asp.net-mvc – 使用ASP.NET MVC的基础认证
- asp.net-mvc – 仅在MVC4 BundleConfig中缩小脚本
- ASP.NET中TextBox使用Ajax控件显示日期不全的问题解决方法
- asp.net-mvc – 尝试方法… HttpConfiguration …访问方法…
- ASP.NET WebAPI中的模拟和异步
- asp.net-mvc – 使URL特定于(通过路由)
- asp.net core 从单机到集群
- ASP.NET Web Pages - WebMail 帮助器
- asp.net – 在global.asax中设置的用户仅在下次请求后才可用
推荐文章
站长推荐
- ASP.Net相当于PHP的file_get_contents(‘php://
- asp.net – InvalidOperationException:没有数据
- asp.net – 何时可以安全地禁用viewstate?
- asp.net-mvc-4 – jQuery DatePicker MVC4 Edito
- asp.net-mvc-2 – MVC2:具有两个字段依赖性的验
- asp.net – 两个域之间的会话共享
- asp.net-mvc-3 – 具有MVC3的多用户应用程序,ASP
- asp.net – 将MVC 2项目升级到MVC 5
- ASP.Net使用状态服务器和缓存增加MaxProcesses(W
- 深蓝词库转换2.0发布——支持仓颉、注音、五笔、
热点阅读