Entity Framework .NetコアFindAsync Throw System.OverflowException:算術演算でオーバーフローが発生しました

.net-core asp.net-core-webapi entity-framework-core

質問

私はトークンを返す認証用のWeb APIを作成しようとしています。私は.Netコア1.1、EF 1.1.0、SQL 2014をWindows 10で使用しています。私は、 この Webサイトから必要なクラスを作成する指示に従います。

ミドルウェアクラスには、 GetIdentityという関数があり、データベースのユーザー名とパスワードをチェックします。ここにコードがあります

private async Task<ClaimsIdentity> GetIdentity(string username, string password, MyDBContext db) {
        try
        {
            m_user SignedUser = await db.Users.FindAsync(username);
            if (SignedUser == null || !SignedUser.password.Equals(password, StringComparison.Ordinal))
                throw new ArgumentException("Invalid username or password");

            return await Task.FromResult<ClaimsIdentity>(
                new ClaimsIdentity(
                    new GenericIdentity(username, "Token"),
                    new Claim[] { }
                ));
        }
        catch (Exception ex) {Console.WriteLine(ex.Message); return await Task.FromResult<ClaimsIdentity>(null); }
    }

プログラムヒット時

m_user SignedUser = await db.Users.FindAsync(username);

System.OverflowExceptionをスローします。算術演算の結果、オーバーフローが発生しました。

解決策が見つからなかったり、少なくとも失敗した理由はありませんでした。

なぜ誰がその例外を知っているのですか?

助けてくれてありがとう。

追伸:詳しい情報が必要な場合は、私に知らせてください

人気のある回答

それを私が直した。間違った接続文字列を使用しました。私は接続文字列にSQLデータベースのポート番号を入れなければなりません。

間違ったもの:

Server=serverAddress;Database=dbName;User Id=dbUser;Password=dbPassword;

右のもの:

Server=serverAddres,portNumber;Database=dbName;User Id=dbUser;Password=dbPassword;

デフォルトのMSSQLポート番号は1433です。

あなたが私と同じ問題を抱えたら、それがあなたを助けてくれることを願っています。

PSでは異なる例外が発生する可能性があります。 VSコードで実行しようとしたときにこの例外が発生しました

このように:

Microsoft.EntityFrameworkCore.Query.Internal.SqlServerQueryCompilationContextFactory [1]クエリの結果を反復処理中に、データベースで例外が発生しました。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ