Start Debugging

タグ: dotnet-10

97 件 · ページ1/10

修正: HttpProtocolException: The HTTP/2 server reset the stream. HTTP/2 error code 'PROTOCOL_ERROR'
ピアが 1 つのリクエストに対して PROTOCOL_ERROR 付きの RST_STREAM を送信しました。HttpClient は自動では再試行しません。どのホップがストリームをリセットしたかを特定し、拒否されたリクエストを修正し、冪等な呼び出しだけを再試行し、最後の手段としてそのホップを HTTP/1.1 に切り替えます。
期限切れの MemoryCache エントリはどうなるのか、そして実際にメモリから削除されるのはいつか
期限切れの MemoryCache エントリは、タイマーでは削除されません。読み取りが触れるか、スロットリングされたバックグラウンドスキャンが走るか、コンパクションが起動するまで、ディクショナリに残り続けます。それぞれがいつ起きるのか、そして積極的なエビクションを実現する方法を解説します。
ASP.NET Core 組み込み OpenAPI ドキュメントでコントローラーアクションのレスポンスを null 許容にする方法
Microsoft.AspNetCore.OpenApi がレスポンスを null 許容として出力するのは、アクションが素の T? を返す場合だけです(.NET 10 では Task<T?> でも出力されません)。ActionResult<T?> と IActionResult では、.NET 10 でも .NET 11 RC2 でもこの注釈が失われます。その理由、動作確認済みの operation transformer による修正方法、そして MVC のフォーマッターも変更しない限り仕様が実態と食い違う 204 No Content の落とし穴を解説します。
C# の `with` 式は実際に何をコピーするのか、そしてレコードの計算プロパティが再計算されないのはなぜか
with 式はレコードのコンパイラー生成メソッド <Clone>$ を呼び出し、そこでコピーコンストラクターが全インスタンスフィールドをコピーし、すべての初期化子をスキップします。そのため、他のプロパティから初期化されるプロパティ、キャッシュされた値、Guid の ID は古いまま残ります。.NET 10 と C# 14 で計測し、実際に有効な対処法を紹介します。
別アセンブリにルーティング可能コンポーネントを持つ Blazor アプリを .NET 8 から .NET 10 へ移行する
Razor クラスライブラリや .Client プロジェクトにページを置いた Blazor Web App を .NET 8 から .NET 10 へアップグレードします。変わらないもの (2 つの AdditionalAssemblies 登録) と、壊れる 4 つのこと (薄いホストでの blazor.web.js の 404 から、空白で描画される NotFoundPage まで) を整理します。ASP.NET Core 8.0.32 と 10.0.10 で検証しています。
修正: Windows で書き込み中のファイルに対して FileInfo.Length が古いサイズを返す
FileInfo はサイズをキャッシュし、列挙では NTFS が遅延更新するディレクトリエントリを読み、さらに書き込み側が自前のバッファーにバイトを保持していることもあります。Refresh() を呼ぶか、より確実には共有ハンドルから RandomAccess.GetLength で長さを読み取ってください。
C# のコンソールゲームループで Console.ReadKey の前にバッファされたキー入力を破棄する方法
新しいキーを待つ前に while (Console.KeyAvailable) Console.ReadKey(true) で入力バッファを空にし、ゲームループでは毎フレーム空にしてキーリピートが溜まらないようにします。.NET 10 の Windows と Unix でのバッファの仕組み、キーを押し続けると遅延する理由、Unix のエコーの罠、FlushConsoleInputBuffer も解説します。
EF Core でエンティティを Attach する前に、DbContext がすでに追跡しているか確認する方法
DbSet.Local.FindEntry(key) を使えば、データベースへの往復やスキャンなしで、指定したキーのエンティティが追跡されているかを変更トラッカーに問い合わせられます。この確認で Entry(entity).State が当てにならない理由、Find がクエリを発行する理由、EF Core 10 で検証済みの AttachOrMerge ヘルパーを紹介します。
次へ