asp.net-mvc-3 – 当HTTP响应状态设置为400时,IIS覆盖HTTP响应文本
|
我正在使用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-mvc – 没有ViewContext的Url表单操作
- asp.net – Request.IsLocal是安全还是可以欺骗?
- asp.net – IIS 6如何从http://example.com/*重定向到http:
- asp.net-mvc – 在ASP.NET MVC Preview 4中使用路由引擎进行
- 组合密钥资源REST服务
- asp.net-mvc-2 – 如何使用Castle Windsor在MVC中注入UrlHe
- asp.net – EF在现实生活中,我想相信(有没有人有很好的指向
- ASP.NET MVC =具有.NET类库的经典ASP.真?
- 为什么VS 2013将ASP.NET MVC 4 web.config复制到bin并重命名
- iis-6 – 如何防止IIS覆盖我在ASP.NET中设置的文化?
- asp.net-mvc – 如何避免使用MVC的标签汤?
- asp.net-mvc – asp.net mvc HttpPostedFileBase
- asp.net – 如何从Web应用程序进行高级打印?
- asp.net-mvc-4 – MVC4 StyleBundle不以正确的顺
- asp.net – 不引用MVC的AllowHtml属性
- asp.net-mvc – NullReferenceException ASP.NET
- asp.net – MSBuild / WebDeploy – 如何防止它删
- Asp.net Razor,语法错误 – onclick事件参数
- asp.net – 使用WebMethods和session时的最佳实践
- asp.net-mvc-5 – 什么是最新的ASP .NET MVC版本
