我已经使用 OpenRasta 构建了一个服务。我正在操作拦截器中验证资源。如果验证失败,则返回 BadRequest,并带有 JSON 格式的 ErrorResource。ErrorResource 包含错误消息列表。在我的本地机器上,ErrorResource 以 JSON 格式正确返回。响应内容类型为 application/json。在我们的测试环境中,服务以 BadRequest 响应,但内容类型为 text/html。不返回错误消息列表。相反,响应包含消息“错误请求”。任何想法为什么会发生这种情况?
这是拦截器的简化版本:
public override bool BeforeExecute(IOperation operation)
{
var errorResource = new ErrorResource();
errorResource.AddErrorMessage("Error!");
_communicationContext.OperationResult = new OperationResult.BadRequest() { ResponseResource = errorResource };
return false;
}
这是配置的简化版本:
using (OpenRastaConfiguration.Manual)
{
ResourceSpace.Has
.ResourcesOfType<ErrorResource>()
.WithoutUri
.AsJsonDataContract();
ResourceSpace.Uses.CustomDependency<IOperationInterceptor, InputValidationInterceptor>(DependencyLifetime.Transient);
}