2009-04-26 13 views
0

私は、特定の日付の後にいくつかの「隠された」資産(実際にはApp_Dataディレクトリに隠されている)を提供するという新しいプロジェクトの要件があります。それ以前は、彼らはそこにいないように行動すべきです。asp.netハンドラと拡張機能 - 私は間違っているのですか?

私はこのようなことをPageオブジェクトで100回実行しましたが、私がこの作業を開始したときにハンドラーを調べると思いました。彼らと一緒に勉強したことはありませんでしたが、私はXMLとJPGファイルをページクラス全体のオーバーヘッドなしで提供できることに満足していました。既に、私はそれを考慮して満足しています。私は "MyHandler.ashx?secretfile = blah.xml"のような機能を扱うように記述しました。

次に、特別な拡張処理について調べ始めました。そのため、blah.xml.secretのリクエストは、ハンドラによって取得され、日付をチェックした後にblah.xmlを返します。私の頭の中のいくつかのライトが消えてしまったので、コードを修正してそのケースを処理しました。それは働いた(IDEで)!私はかなり興奮していた。

devサーバ(IIS)へのアクセスは少し異なります:.secretを.NETタイプ(大したことはありません)として登録する必要がありました。また、「verify file exists "チェックボックス。 (blah.xml.secretは存在しませんが、blah.xmlはそうですが、要求されている場所ではなく、保護されているApp_Dataディレクトリにのみあります)。これは大きな問題ではありませんが、今私の巧妙な解決策は、 IIS側からの詳細。

私の質問です:これは、asp.netでのハンドラの意図された使用ですか?私はこれを認識以外に歪めていますか?私は過去にこのようなトリックをサイトが行ったのを見たように感じますが、私がやろうとしていることの1つとして、IISの変更はあまりにも複雑に見えます。これに関する私の研究では、このような例を含むハンドラを使用することについてスラムダンク1-2-3のガイドが見つかりませんでしたので、私はおそらくそれを悪用したり、間違った方法をとっていると思っています。

答えて

2

はい、それはかなり機能します。 (Windows Server 2008では、web.configから設定を行うことができるため、IISで何も変更する必要はありません)

まだ登録されていない拡張機能を使用するとASP.NETエンジンで処理される場合は、登録する必要があります。 ASP.NETですでに処理されている拡張子(.aspxなど)を使用する場合は、IISに何も登録する必要はありません。 (Visual Studioの統合Webサーバーで実行すると、すべてがASP.NETで既に処理されているため、そこで動作します)

関連する問題