.net – 设置响应状态代码会在自定义错误页面顶部导致不需要的错
更新:
为确保将正确的状态代码返回给浏览器,error.aspx具有以下行: <% Response.StatusCode = 500; %> 删除它会删除不需要的文本,但我想要正确的状态代码,所以我想这是一个新问题……如何!? 设置响应状态代码具有相同的结果: HttpContext.Current.Response.StatusCode = 500; 将更新问题标题. PRE-UPDATE: 由于一些遗留代码/配置,我们有一个稍微不寻常的自定义错误页面设置,它处理global.asax中的异常并使用Server.Transfer()来呈现相应的.aspx错误页面,如下所示: public void Application_Error(object sender,EventArgs e) { // abbreviated to clear out logging and some other logic that determines which error page to show HttpContext.Current.Response.Clear(); HttpContext.Current.Server.ClearError(); var context = HttpContext.Current; if (context != null) { var errorPage = "~/ErrorPages/error.aspx"; context.Server.Transfer(errorPage); } } 问题是,当向远程用户显示error.aspx时,页面会附加一条错误消息(以及一个新的开放正文标记…),因此该页面的第一行是无样式的文本说:
虽然也许我正在使用Google搜索错误的内容,但它似乎并不是一个记录良好或经常讨论的问题. 欢迎任何想法. error.aspx代码非常通用,但我很乐意发布它是否有帮助 – 请注释. 解决方法
修复是将此添加到web.config:
<system.webServer> <httpErrors existingResponse="PassThrough" /> </system.webServer> 根据这个答案: IIS7 Overrides customErrors when setting Response.StatusCode? 而这篇博文: http://blogs.iis.net/ksingla/what-to-expect-from-iis7-custom-error-module (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 实体框架 – Unity Lifetime Managers和EF Data Context –
- asp.net – 在Global.asax方法中将与Autofac注册的组件的相
- asp.net – 如何使用jQuery ajax避免快速结果的“闪烁”进度
- asp.net-mvc-4 – 我似乎没有安装SignalR与MVC4
- asp.net-mvc – 我应该在ASP.NET MVC项目中将类文件存储在哪
- asp.net-mvc-4 – 捆绑从CDN提供的多个CSS?
- asp.net-mvc – 如何在版本信息中包含静态内容
- asp.net FileUpload.FileName返回完整路径,即ie,当不需要时
- asp.net core后台系统登录的快速构建
- asp.net-mvc – AntiForgeryToken在ASP.Net MVC 4 RC中弃用