2011-08-07 12 views
8

Windows 7でIIS 7.5を実行しています。私のASP .NETアプリケーションはVirtualPathProviderを使用しています。ほとんどのファイル(aspxページ)は返され、VirtualPathProviderによって正常にレンダリングされます。静的ファイル(CSS /画像)はありません。静的ファイルを使用したASP.NET VirtualPathProviderの問題

私は、web.configに静的ファイルタイプ用に登録された正しいハンドラがあることを確認しました。これらのファイルは、直接ブラウズしようとするとHTTP 404エラーが発生します。奇妙な何

はこれです:

  1. 私は非仮想GIFファイル(実際には、ウェブサイトのルートの下にファイル・システム上に存在するもの)を参照しようとすると、それがうまくレンダリングします。

  2. IISの代わりにVisual StudioでWebDevを使用すると、仮想gifファイルが正常に表示されます。

  3. VirtualPathProvider.GetFileで、私のVirtualPathProviderは、ページが404エラーを返す直前に私の仮想gifファイルの完全に有効なインスタンスを返すことができます...私はVirtualPathProviderがうまく動作していることを知っています。

注記IISとは、展開された環境ではありません。 WebDevではなくIISを使用するようにプロジェクト設定を切り替えるだけです。

アイデア?

ありがとうございました。

答えて

11

...とanswer

私は特に現れてルーティングして、束に実行した問題は、さえASP.NETにワイルドカードマップで、私の静的ファイルは、で終わるということです404エラーコードはルーティングがそれらをキャッチして、MVCハンドラに要求を送り、ルートが見つからないためです。失敗します。

自分自身(他に似たようなことをやっている人)のメモとして、VPPに静的ファイルを提供するために必要なことは次のとおりです。

まず、あなたがASP.NETにマッピングされた目的の静的なファイルの種類を取得する必要があります...

+1

ああ、あなたが私を救ってきた頭痛!素晴らしい記事、素晴らしい発見。 – lukiffer

+0

これは私に数時間の仕事を節約しました。共有ありがとう! – amaters

+0

この記事は時間を節約しました!ありがとうございました! –

関連する問題