2011-01-12 15 views
1

だから私は、私がサポートするように求めてきたアプリケーションでHttpModuleを内に含まれる次のコードを持っている:XML戻り値の型にContext.Items.Add?

app.Context.Response.ContentType = "text/xml"; 
app.Context.Items.Add("IpixRoomId", ipixRoomId); 
app.Context.Items.Add("IpixId", ipixId); 
app.Context.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
app.Context.RewritePath(rewriteUrl, true); 

コンテンツタイプがXMLであるときContext.Itemsにデータを追加する目的は何ですか?

EDIT:は明確にするために、私はこのURLを呼んでいる:

http://website.com/virtualtour/1971/6284/panorama2flash.swf

は私がhttp://website.com/virtualtour/config.xmlに別の呼び出しを行う(Iはフラッシュについてほとんどが知っている)SWFファイルを想定しています。上に貼り付けたコードは、config.xmlの呼び出しでのみ実行されます。したがって、SWFファイルとconfig.xmlだけがサーバーから要求されているので、私はちょっと混乱します。 .SWFファイルはHttpContext.Current.Itemsにアクセスできますか?

HttpModuleを除いて、.NETにはコードが含まれていません。これはSWFファイルへの直接要求であり、config.xmlの呼び出しをトリガーしますが、Context.Itemsには、 SWFファイルは正しい仮想ツアーを表示します。私はちょうどそのリンクが起こるどこに行方不明です。それはXMLの中で起こることはありません。だから、おそらくFlashで?

+0

コードを見ても派生できない場合は、元の作者に呼び出しの意図を尋ねます。 'HttpContext.Items'に格納されている情報を利用したリクエストパイプライン(または同じモジュール内のメソッド)に他のモジュールがあった可能性があります。 –

答えて

1

HttpContext.Itemsは、要求の範囲内に存在する一時的なリポジトリです。通常、モジュールで使用され、他のモジュール内およびその要求を処理するパイプライン内で状態を共有します。

主な理由は正確に前後に情報を渡すことです。

+0

私はContext.Itemsが何であるかを知っていますが、コンテンツタイプがXMLの場合、アプリケーションにはどのような問題がありますか? – Scott

+0

@Scott Schluerそれを使用する理由は依然として要求のコンテンツタイプに関係なく維持されます。現在の要求の範囲で状態情報を共有するだけです。 –

+0

あなたは知っていますか... HttpHandlerが埋まっていて、実際にそれらを利用しています。 – Scott