在ASP.NET Web应用程序中有未处理的异常是否可以接受?
|
我正在与第三方供应商合作,他们提供了一个ASP.Net Web应用程序.该网络应用程序每天生成大约200个未处理的例外,最终作为我的收件箱中的电子邮件.经过调查发现,大多数这些错误都是由GoogleBot网络抓取工具索引网站并触发对另一个第三方网络服务的访问而触发的,这对请求进行了速率限制.当超出请求限制时,第三方Web服务拒绝该请求,这将导致Web服务器中的未处理异常和HTTP / 500状态代码.异常如下所示: Exception: Exception of type 'System.Web.HttpUnhandledException' was thrown.,Stack Trace: at System.Web.UI.Page.HandleError(Exception e) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequest(HttpContext context) at ASP.views_products_detail_aspx.ProcessRequest(HttpContext context) at System.Web.Mvc.ViewPage.RenderView(ViewContext viewContext) at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) at System.Web.Mvc.ControllerActionInvoker.c__DisplayClass11.b__e() at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter,ResultExecutingContext preContext,Func`1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext,IList`1 filters,ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,String actionName) Web应用程序开发人员似乎不愿意处理这些错误,原因我并不理解.他们的方法是限制谷歌博客,直到错误停止发生(谷歌索引非常攻击,每天产生大约5,000次点击).虽然我接受限制GoogleBot会起作用,但对我来说这似乎是个问题.我一直认为未处理的异常是错误. Web应用程序不应该处理这些错误吗?允许HTTP / 500发生是可以接受的吗?网络开发人员在想什么? 解决方法这里真的有几个问题:如果网站显示异常(否),网站是否应显示对用户更友好的内容(是),如果网站无法继续向Googlebot返回500错误(可能),你是否应该要求Googlebot放慢速度(是),如果你每天发送500封例外电子邮件而没有限制或摘要(可能不会).更多详情:- 使用google.com/webmasters,您可以请求Google不那么积极地为您的网站编制索引. 您永远不应该向用户显示异常,您应该始终捕获它并显示友好的错误页面但是当您显示该页面时需要小心保留HTTP代码(例如404或500),因为如果您返回包含代码的页面= 200然后该错误页面将进入搜索引擎索引. 任何错误处理程序都应该限制发生错误时发送电子邮件的频率. 一个编写良好的错误处理程序还应该允许抑制你知道会发生的错误 – 例如某些搜索引擎坚持要求不存在的页面. 如果谷歌可以让你进入速率限制的情况,那么来自用户的高流量也许可以做同样的事情,所以整体来说听起来你也需要某种缓存解决方案. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-4 – MVC4/DotNetOpenAuth中的自定义OAuth客户
- asp.net – Oracle.ManagedDataAccess:TNS:无法解析指定的
- asp.net-mvc – asp.net MVC:禁用一个TextBox
- asp.net-mvc – Razor vs Webforms视图引擎,用于新的ASP.NE
- asp.net-mvc – 如何使用身份成员资格与现有数据库(n层)
- 新的ASP.NET捆绑功能 – 我如何以编程方式刷新某个捆绑包?
- asp.net-mvc – MVC4 Web Api中的[Bind(Prefix =“principa
- asp.net-mvc – 在控制器中创建操作链接
- asp.net-mvc – 使用ASP.NET会员资格和配置文件与MVC,如何创
- ASP.net Web服务与WCF
