部分応答: HTTPメッセージのライフサイクルをhereから調べると、HttpRoutingDispatcherの前にパイプラインの早い時期にメッセージハンドラを追加する可能性があります。だから、
、ハンドラクラスを作成します。あなたのWebApiConfigで
public class NotAllowedMessageHandler : DelegatingHandler
{
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
var response = await base.SendAsync(request, cancellationToken);
if (!response.IsSuccessStatusCode)
{
switch (response.StatusCode)
{
case HttpStatusCode.MethodNotAllowed:
{
return new HttpResponseMessage(HttpStatusCode.MethodNotAllowed)
{
Content = new StringContent("Custom Error Message")
};
}
}
}
return response;
}
}
を、Registerメソッドに次の行を追加します。あなたはレスポンスのステータスコードをチェックして、カスタムを生成することができます
config.MessageHandlers.Add(new NotAllowedMessageHandler());
をそれに基づくエラーメッセージ。
WebサーバーはWindows Server上のIISですか? – creyD
はい、私はサーバーやIISを制御できませんので、プログラマチックに処理する方法があればそれが望ましいでしょう。 – Ayman