Sisk

変更履歴

このページは英語から自動翻訳されています。 原文を読む

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 パッケージとして公開します。

ドキュメントと API リファレンスを検索するには入力してください。