2

コンテンツが変更されていない場合に 304 応答を返す ASP.Net MVC のフィルター属性に取り組んでいます。これを達成するために、コントローラに設定された Last-Modified ヘッダー値を読み取ることができると便利です... 1 つの問題があるようです。Cassini [Visual Studio 2008 Dev Web Server] で次のようなコードを実行すると、ヘッダーを読み取る方法が見つからないようです...

Response.AddHeader("Last-Modified", lastModified);
string getLastModified = Response.Headers.Get("Last-Modified");

私も次のことを試しました:

Response.AddHeader("Last-Modified", lastModified);
string getLastModified = Response.Headers["Last-Modified"];

どちらも PlatformNotSupportedException を返し、「この操作には IIS 統合パイプライン モードが必要です」が必要であることを示します。

環境の詳細は次のとおりです。

  • フレームワークのバージョン: .Net 3.5 - SP1
  • IDE: ビジュアル スタジオ 2008
  • Web サーバー: Cassini [開発] および IIS6 [運用]

これを機能させる簡単な方法がおそらくありません...
事前に感謝します、
ジョー

4

1 に答える 1

1

Response.Headers は、Cassini または IIS 6 ではサポートされていません。これは、サーバー変数など、他のいくつかの最近の機能にも当てはまります。

解決:

  1. 開発ファイルを指すように IIS で Web サイトを構成し、それに応じてプロジェクトの開始 URL を設定することにより、IIS 7 のローカル バージョンで開発を行います。必要に応じて、複数のプロジェクトで 80 以外のポートを使用できます。

  2. IIS 7 を使用するように運用サイトを切り替えます (おそらく Windows Server 2008 を使用します)。パフォーマンスの向上など、アップグレードする正当な理由は他にもたくさんあります。

アップグレードが不可能な場合、考えられる唯一の代替手段は、ISAPI フィルターを記述してヘッダーを変更することです (C++ で)。

于 2009-11-21T03:59:51.340 に答える