変更履歴
このページは英語から自動翻訳されています。 原文を読む
Sisk に加えられたすべての変更は変更履歴に記録されています。すべての Sisk バージョンの変更履歴はこちらで確認できます。
1.6 から 1.7 への移行 #
Sisk 1.7.0 では Sisk.HttpServer、Sisk.Cadente、Sisk.Cadente.CoreEngine、Sisk.IniConfiguration が 1.7.0 として提供されます。Sisk.Documenting、Sisk.Documenting.Html、Sisk.Monitoring は 1.7.0-rc3、Sisk.ModelContextProtocol は 1.7.0-rc1 として提供されます。すべての変更については 完全な 1.7.0 変更履歴 を参照してください。
破壊的変更 #
Route.UseRegexは設定できなくなりました。 このプロパティは廃止予定で、ルートがRegexRouteかどうかを示すだけです。代わりに RegexRoute を作成してください。UseRegex = trueのルート属性や[RegexRoute]属性は引き続き機能します。regex routes を参照してください。C# // 前 router.Map(new Route(RouteMethod.Get, @"^/items/(?<id>\d+)$", action) { UseRegex = true }); // 後 router.Map(new RegexRoute(RouteMethod.Get, @"^/items/(?<id>\d+)$", action));リクエストボディのデフォルト上限が 100 MB に変更されました。 HttpServerConfiguration.MaximumContentLength のデフォルト値は
0(無制限)から 100 MB に変更されました。この上限はリクエストストリームや WebSocket メッセージにも適用されます。以前の動作に戻すには0を設定してください。getting the request body を参照してください。C# using var app = HttpServer.CreateBuilder() .UseConfiguration(config => config.MaximumContentLength = 0) .Build();静的ルートが動的ルートより先に評価されます。 正規表現ルート、プレフィックスルート(ファイルサーバーを含む)およびカスタムマッチングルートは、登録順に関係なく、すべての静的ルートの後に評価されます。matching precedence を参照してください。
重複したルート名は起動時に例外をスローします。 同じ
Nameを持つルートが 2 つ以上あると、サーバー起動時にArgumentExceptionが発生します(デフォルトで有効な Router.CheckForRouteCollisions が有効な場合)。ファイルサーバールートはプレフィックスルートです。
Router.MapFileSystemとHttpFileServer.CreateServingRouteは正規表現ルートではなく PrefixRoute を作成し、ForceTrailingSlashの影響を受けなくなります。RouteMethod.AnyにQUERYが含まれます。MapAnyでマッピングされたルートはQUERYリクエストにも応答します。RouteMethod.Anyの数値が変更されたため、これを保存または比較しているコードは再コンパイルしてください。CORS プリフライトが
UseCorsを尊重します。UseCors = falseのルートに対して自動的に生成されるOPTIONS応答は CORS ヘッダーを送信しなくなり、OPTIONS用に明示的にマッピングされたルートがリクエストを処理します。preflight requests を参照してください。Cadente が不正なリクエストを拒否します。 無効なリクエストメソッドやターゲット、サポートされていない
Transfer-Encodingの値、矛盾するContent-Lengthヘッダーは拒否され、8 KB を超えるヘッダーブロックには431 Request Header Fields Too Largeが返されます。Cadente request validation を参照してください。
廃止されたパッケージ #
Sisk.BasicAuth、Sisk.SslProxy、Sisk.ServiceProvider はもはやメンテナンスされず、NuGet でも非推奨となっており、代替パッケージはありません。プロジェクトから削除してください。
Sisk.BasicAuthを、Authorizationヘッダーを検証する独自の request handler に置き換えてください。Sisk.SslProxyを、Cadente engine のネイティブ SSL サポートに置き換えてください。Sisk.ServiceProviderを、UsePortableConfigurationを介してSisk.HttpServerに組み込まれている portable configuration に置き換えてください。
新機能 #
Route.Match、RouteMatch、Route.IsStatic、Route.AllowRewritesを使用した Custom route matching と新しい prefix routes。MapQuery、Route.Query、[RouteQuery]、Accept-Queryヘッダーを使用した HTTP の QUERY method のサポート。HttpContext.Interlockedを介した Atomic context values。- リクエストバッグの値を出力する
%{$key}access log term と、safe file writing helpers のLogStream.SafeWriteToFileとLogStream.SafeAppendToFile。 - Cadente において: パイプライン化されたキープアライブリクエスト、
WriteInlineContentとWriteInlineContentAsync、および SSL ポートで受信したプレーン HTTP リクエストを HTTPS にリダイレクトする機能。 - 拡張機能において: Sisk.Documenting のパラメータ例と
LlmsApiExporter.FooterText、Sisk.ModelContextProtocol のスキルと2026-07-28プロトコルリビジョン、そして Sisk.Monitoring ダッシュボードの HTTP トラフィック、レイテンシ、ルート、例外テレメトリ。
その他の動作変更 #
HttpListenerエンジンは各リクエストをスレッドプールにディスパッチするため、遅いリクエストが次の受け入れ接続を遅延させなくなりました。そのContextAbortedTokenは例外をスローする代わりにCancellationToken.Noneを返します。- リクエストの終了時やログ書き込み中にサーバーハンドラからスローされた例外は、HTTP エンジンにエスケープするのではなくエラーログに記録されます。exceptions thrown by handlers を参照してください。
- 許可されたオリジンがリクエストに依存する場合、CORS 応答は
Vary: Originを送信します。 %riアクセスログ項目は、リクエスト開始時に解決されたクライアントアドレスを使用します。Sisk.HttpServerは .NET 8、.NET 9、.NET 10 を対象とします。Sisk.CadenteとSisk.Cadente.CoreEngineは .NET 9 と .NET 10 を対象とし、デバッグシンボルを.snupkgパッケージとして公開します。