JSON に応答する ASP.NET ASMX WebMethod で、例外をスローして HTTP 応答コードを設定することはできますか? HttpException をスローすると、ステータス コードは適切に設定されると思いましたが、サービスが 500 エラー以外で応答することはありません。
私は次のことを試しました:
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public void TestWebMethod() {
    throw new HttpException((int)HttpStatusCode.BadRequest, "Error Message");
}
また:
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public void TestWebMethod() {
    try {
        throw new HttpException((int)HttpStatusCode.BadRequest, "Error Message");
    }
    catch ( HttpException ex ) {
        Context.Response.StatusCode = ex.GetHttpCode();
        throw ex;
    }
}
これらは両方とも 500 で応答します。
どうもありがとう。