OpenRasta を使用してサービスを構築しました。操作インターセプターでリソースを検証しています。検証が失敗した場合、JSON として ErrorResource とともに BadRequest が返されます。ErrorResource には、エラー メッセージのリストが含まれています。私のローカル マシンでは、ErrorResource が JSON 形式で正しく返されます。応答のコンテンツ タイプは application/json です。テスト環境では、サービスは BadRequest で応答しますが、コンテンツ タイプは text/html です。エラー メッセージのリストは返されません。代わりに、応答には「Bad Request」というメッセージが含まれています。なぜこれが起こっているのですか?
インターセプターの簡略化されたバージョンは次のとおりです。
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);
}