1726557736
2024-09-17 07:01:15
先週、マイクロソフトは 最初の .NET 9 リリース候補これは新しいフレームワークの最初のGo-liveバージョンであり、今年後半にリリースされる予定です。他の機能の中でも、 ASP.NET Core の重要なアップデートこれには、WebSocket のキープアライブ タイムアウト、ミドルウェアでのキー付き DI サービスのサポート、SignalR 分散トレースの改善が含まれます。
このリリースの最も重要な機能の1つは、WebSocketミドルウェア構成にキープアライブタイムアウトが追加されたことです。ClientWebSocketOptionsとWebSocketCreationOptionsの新しいAPIを使用すると、WebSocket pingを送信し、指定されたタイムアウト期間内にクライアントが応答しない場合は接続を中止(例外をスロー)できます。これは問題の修正です。 2021年に調達 GitHub ユーザー @bjornen77 より:
現在、TCP 再送信がタイムアウトすると (何らかの理由でサーバーへの接続が切断された場合)、ClientWebSocket は閉じられます。このタイムアウトは、Windows と Linux で異なるようです。デフォルトでは、WebSocket が閉じられるまでに Windows では約 21 秒かかり、Linux では約 15 分かかります。プラットフォームに関係なく同じ動作が得られるように、別のタイムアウト設定があれば便利です。また、OS の TCP タイムアウト設定を変更しなくても、アプリケーションでこれを構成できると便利です。
このリリースのもう一つの興味深いアップデートは、 キー付きDIサービス コンストラクターと Invoke / InvokeAsync メソッドの両方で使用できます。「キー付き DI」とは、キーを使用して依存性注入 (DI) サービスを登録および取得するメカニズムを指します。サービスがキーを使用して登録されると、このキーを使用して後で関連するサービスにアクセスできます。次の例は、新しいリリースでのキー付きサービスの使用を示しています。
var app = builder.Build(); app.UseMiddleware(); app.Run(); 内部クラス MyMiddleware { private readonly RequestDelegate _next; public MyMiddleware(RequestDelegate next, [FromKeyedServices(“test”)] MySingletonClassサービス) { _next = next; } public Task Invoke(HttpContext context, [FromKeyedServices(“test2”)] MyScopedClass スコープ付きサービス) => _next(コンテキスト); }
ソース: マイクロソフト
SignalR分散トレースは、 .NET 9 プレビュー 6は、ハブメソッド呼び出しのイベントの発行を可能にします。このリリースでは、新しいトレース機能には、ハブ呼び出しによるクライアントスパンの作成と、 コンテキストの伝播その結果、クライアントとサーバー間の呼び出しフローを確認できるようになりました。
ソース: マイクロソフト
このリリースのその他の更新には、InputNumber コンポーネントの型オーバーライドのサポートと、ASP.NET Core HTTPS 開発証明書を Chromium および Mozilla ブラウザーの信頼できる証明書として構成し、.NET API で使用するための Linux (Ubuntu および Fedora ベースのディストリビューション) のサポートが含まれます。
.NET 9 RC1のASP.NET Coreアップデートの詳細については、公式の リリースノート.NET 9のASP.NET Coreロードマップも利用可能 GitHubで。
#ASP.NET #Core #Websocket #のキープアライブ #タイムアウトSignalR #トレースの改善など