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

開発一般

C# IHttpClientFactory の基本とタイムアウト設定

IHttpClientFactory は HttpClient の寿命・ハンドラ再利用を枠組みで管理する仕組み。都度 new によるソケット枯渇を避けつつ、名前付きクライアントで Timeout などを揃える。 先に結論 ...

続きを読む

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

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

続きを読む

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 ...

続きを読む

SQL Server「タイムアウト期限が過ぎました」原因と対策

ADO.NET / EF から SQL Server を叩いていると、「タイムアウト期限が過ぎました」系の例外が出る。接続の待ち切れと、コマンド実行の待ち切れは別物なので、まずどちらなのかを分ける。 先に結論 切り分けの ...

続きを読む

SQL Server ブロッキングの見方(誰が止めているか)

「クエリが返ってこない」「タイムアウトばかり」のとき、実体がブロッキング(誰かがロックを持ったまま、別セッションが待たされている)であることが多い。デッドロックと違い、自動解消されず待ち続ける。 先に結論 ざっくり見る手 ...

続きを読む

Docker コンテナが即終了するときの見方

docker run した瞬間に Exited になる、Compose で上がったと思ったらすぐ落ちる——「起動失敗」ではなく「プロセスがすぐ終わった」ことが多い。コンテナは PID 1 が終了すると止まる、という前提で ...

続きを読む