2

クライアント側で C# 例外をキャッチしようとしています。現在、ログインしているユーザーが削除リンクを取得するセクションがあり、クリックすると、削除する前にユーザーがまだログインしていることを確認します。もうログインしていない場合、コードは例外をスローします。

        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    [WebMethod]
    public static void DeleteComment(Guid commentId)
    {
        try
        {
            if (HttpContext.Current.User.Identity.IsAuthenticated)
            {
                UserEntity currentUser = ((UserEntity)Membership.GetUser());
                .. do work
            }
            else
            {
                throw new HttpException(401, "401");
            }
        }
        catch (Exception)
        {
            throw;
        }
    }

このエラーは JavaScript コードに送られ、次にチェックされます。

if (result.responseJSON.Message == "401") {

これはローカル環境では正常に機能し、Message フィールドには 401 が含まれ、responseJSON.ExceptionType には「System.Web.HttpException」が含まれますが、ステージング環境で試行すると、代わりに 500 エラー コードが返され、ExceptionType は「」になります。

リモート掘り下げを試してみましたが、ログインしていないときに例外が発生し、スローされますが、クライアント側のコードにヒットすると、常に 500 になります。

4

0 に答える 0