質問

IISで初めて作成した仮想ディレクトリ内のファイルにアクセスしようとしていますが、奇妙な結果が得られています。

OS:Windows XP Pro

IIS:5.1

開発プラットフォーム:Visual Studio 2008

言語:C#

仮想ディレクトリ名:ポータル

ローカルパス:c: digital_communications_report_portal

デフォルトのウェブサイトローカルパス:c: inetpub wwwroot

でファイルをダウンロードできます http://localhost/portal/testfile.xlsx 何の問題もありません。

私はこれらのいずれかを試しています

string realFilename = Server.MapPath(ResolveUrl("~/portal/testFile.xlsx"));
string realFilename = Server.MapPath(ResolveUrl("localhost/portal/testFile.xlsx"));

「c: documents and settings jjohnson my documents visual Studio 2008 webサイト clientsite localhost portal testfile.xlsx」 。 TildeまたはlocalHostを服用してみてください。「/path '/portal/testfile.xlsx'」の「パスのマッピングに失敗しました。」例外。

私が間違っていることはありますか?

役に立ちましたか?

解決

私が間違っていない場合、 Server.MapPath(ResolveUrl("~/relative/path/to/file")) あなたが望むものではありません。それはaを生成します /rooted/path/to/file 渡されたとき Server.MapPath() 有効な場所を生成しません。

代わりに使用するだけです Server.MapPath("~/relative/path/to/file");

アップデート

あなたが経験している問題は、相対URLに仮想ディレクトリ名(「ポータル」)を含めているという事実によるものです。相対URLは、仮想ディレクトリ名を指定する必要はありません。これは、アプリケーションのルートに対する目的のファイルへのパスのみです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top