asp.net-mvc-3 – 当HTTP响应状态设置为400时,IIS覆盖HTTP响应文
发布时间:2020-12-16 00:27:34 所属栏目:asp.Net 来源:网络整理
导读:我正在使用IIS 7.5后端构建一个MVC 3应用程序。在我的控制器上,我有操作方法允许用户添加/编辑域对象。该操作处理HTTP Post,具有返回值的字符串,其中包含在保存过程中遇到的任何验证错误消息。以下是一个操作方法的示例: [HttpPost] public string Custo
我正在使用IIS 7.5后端构建一个MVC 3应用程序。在我的控制器上,我有操作方法允许用户添加/编辑域对象。该操作处理HTTP Post,具有返回值的字符串,其中包含在保存过程中遇到的任何验证错误消息。以下是一个操作方法的示例:
[HttpPost] public string CustomerEdit(CustomerModel customerModel) { var errorMessages = new StringBuilder(); var serverErrors = new List<string>(); //Map to a customer domain object Mapper.CreateMap<CustomerModel,Customer>(); var customer = Mapper.Map<CustomerModel,Customer>(customerModel); if (customerModel.Oper == "del") { var customerIds = new List<Guid>(); customerIds.Add(customer.Id); if (!_serverService.DeleteCustomers(customerIds)) { errorMessages.Append("The item could not be deleted"); Response.StatusCode = Constants.STATUS_SERVER_ERROR; } } else { //Validate if (!_serverService.ValidateCustomer(customer,out serverErrors)) { foreach (var error in serverErrors) { ModelState.AddModelError("Validation",error); } } //Save if (ModelState.IsValid) { var saveStatus = _serverService.SaveCustomer(ref customer,_id); if (!saveStatus) { errorMessages.Append("The server encountered and error during Save"); Response.StatusCode = Constants.STATUS_SERVER_ERROR; } } else { errorMessages.Append(GetValidationErrors(ModelState)); Response.StatusCode = Constants.STATUS_SERVER_ERROR; } } return errorMessages.ToString(); } 在出现错误的情况下,我需要将Response.StatusCode属性设置为400/500的值,并返回一个连接的详细错误消息字符串。不幸的是,IIS总是将我的错误字符串从响应测试中删除,并且(在400个错误的情况下)添加将字符串’Bad Request’ 当状态码设置为400时,是否有办法配置IIS返回自定义的Action特定字符串? 解决方法
在与我的一位朋友交谈后,我发现在配置IIS时,我发现在IIS 7中,您可以将以下内容添加到web.config中:
<system.webServer> <httpErrors errorMode="Detailed"/> </system.webServer> 如果使用web.config中的此设置,并且设置响应的正文,则响应主体将到达客户端。如果您没有设置响应正文,IIS将提供详细的错误信息(见http://learn.iis.net/page.aspx/267/how-to-use-http-detailed-errors-in-iis/)。许多人认为这是一个安全隐患,所以谨慎使用。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET没有魔法——ASP.NET Identity与授权
- asp.net – Absolut 1个aspx文件中最少的代码唤醒.NET
- asp.net-mvc-4 – 如何将自定义css / js添加到MVC4项目进行
- 初识ABP vNext(6):vue+ABP实现国际化
- asp.net – mvc渲染没有httpContext或控制器上下文的局部视
- asp.net – 在Web.Config文件之外存储SMTP
- ASP.NET MVC4 Razor模板简易分页效果
- asp.net – 无法在应用程序级别下定义元素’buildProviders
- asp.net-mvc – 为什么LINQ to Entities不能识别方法’Syst
- asp.net – 如何在网站项目中使用发布配置文件(.pubxml)时设
推荐文章
站长推荐
- asp.net-mvc – 在调用action之前发生的ASP.NET
- VS 2015 CTP 6 Nuget Package Source
- asp.net – 与web.config中的targetFramework相关
- asp.net-mvc-3 – ASP.NET MVC 3 MSChart错误:此
- asp.net-web-api – 安装VS 2015 Update 3后,向W
- asp.net-mvc – 对Json解决方法的EntityFramewor
- asp.net-mvc – System.Web.Mvc.ActionFilterAtt
- asp.net – URL没有可用扩展名时重定向
- asp.net-mvc-3 – R#6 – 在剃刀视图中建议“使用
- asp.net – HTML5编辑器从微软词语粘贴时丢失格式
热点阅读