• システム開発に関わる内容をざっくりと書いていく

.net C#

C# CancellationToken でタイムアウトを実装する

処理の打ち切りは CancellationToken で下流まで伝えるのが定石。タイムアウトも「一定時間後に Cancel」として同じ経路に乗せると扱いやすい。 先に結論 基本パターン using var cts = C ...

続きを読む

C# ConfigureAwait(false) が必要な場面・不要な場面

ConfigureAwait(false) は「続きを元の同期コンテキストに戻さない」指定。ライブラリや ASP.NET Core の扱いが混同されやすいので、場面で分ける。 先に結論 必要な場面 不要な場面 // ライ ...

続きを読む

ASP.NET Core 404なのにコントローラがあるときの確認ポイント

コントローラもアクションもあるのに 404。ルーティング・属性・エンドポイント登録のどれかが外れていることが多い。 先に結論 チェックリスト よくある原因 確認のコツ 関連: DI Unable to resolve s ...

続きを読む

ASP.NET Core モデルバインディング失敗(400)の見方

アクションに入る前に 400 になる典型がモデルバインディング/バリデーション失敗。[ApiController] だと自動で ProblemDetails っぽい応答になりやすい。 先に結論 切り分け手順 よくある原因 ...

続きを読む

ASP.NET Core ProblemDetails でエラーレスポンスを揃える

API のエラー形式がエンドポイントごとに違うとクライアントが辛い。ProblemDetails(RFC 7807 系)で type / title / status / detail を揃えるのが定石。 先に結論 揃え ...

続きを読む

JWT 認証 401 / 403 の切り分け(ASP.NET Core)

JWT 利用時の 401 と 403 は意味が違う。401 は「認証できていない」、403 は「認証はできたが許可されていない」が基本。 先に結論 401 のチェック 403 のチェック ログで見ると早い点 builde ...

続きを読む

IIS / Kestrel 502 / 503 のざっくり切り分け

ASP.NET Core を IIS の裏で動かしていると、502.3 や 503 が突然出ることがある。アプリ例外というより「ゲートウェイ/プロセス側」の失敗であることが多い。 先に結論 502 のよくある型 503 ...

続きを読む

EF Core で発行SQLを確認する方法

EF Core 利用中に「どんな文が飛んでいるか」が見えないと、N+1 や想定外の結合に気づけない。ログ/インターセプタ/デバッガ出力など、環境に合わせた確認手段を持っておく。 先に結論 よく使う手段 見るときのポイント ...

続きを読む

EF Core N+1 の見つけ方と対策

一覧画面が遅い、ログに同じような照会が何百回も出る——典型が N+1。親を1回取ったあと、関連を行ごとに追加で取りに行くパターンだ。EF Core では Include 忘れや遅延ロード、ループ内の別クエリが原因になりや ...

続きを読む

EF Core マイグレーション失敗時の切り分け

dotnet ef database update が落ちる、起動時に自動適用が例外で止まる——マイグレーション失敗は「モデル差分」「履歴表」「既に存在するオブジェクト」が絡みやすい。慌てて手動でオブジェクトをいじる前に ...

続きを読む