2011-01-18 17 views
0

これはIIS 6でうまくいきました。現在、IIS 7.5を使用しているため、問題を把握することはできません。特注のアプリを稼働させようとすると、それはファイルマネージャーです。ファイル名にスペースが含まれているファイルにアクセスしようとすると、IISはURLをfiles/This+is+a+filename.docとしてエンコードし、ファイルを見つけることができません。 URLをfiles/This%20is%20a%20filename.docとしてエンコードする必要があります。URL書き換え+%20

URLの書き換えを見てきましたが、私の周りに私の頭を浮かべることはできません。

アイデア?

+1

なぜ正規表現はオプションですか? 'Request.QueryString [" filename "]。(" + "、"%20 ")'、いいえ?または[Server.URLEncode](http://msdn.microsoft.com/en-us/library/ms525738%28v.90%29.aspx) –

+0

アプリケーションは、私が持っていないクラスoutputFile()を呼び出しますアクセスは、DLL内にあるので、私はそれが単純であるとは思わないでしょうか? – TTS

+1

FYI: '+ to space '形式は[URI-encoding]ではなく[Query string-encoding](http://en.wikipedia.org/wiki/Query_string)です(http://en.wikipedia.org/wiki /パーセントエンコーディング)。 '+' *はURIでまだ有効で*エンコードされていませんが、 '+'(%2B)ではなく 'space'(%20)にマップされています。最適なURIエスケープ関数*を使用するようにジェネレータ/コードを修正するのが最善です。 (私はそれを[注文]はIISにURIを渡す代わりにクエリ文字列として扱い、内部的にフェッチを処理すると思われます - おそらくこれが変更されました) –

答えて

0

URLエンコードを変更することができます。正規表現の必要はありません。