server.mappathが機能していません
-
02-10-2019 - |
質問
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は、仮想ディレクトリ名を指定する必要はありません。これは、アプリケーションのルートに対する目的のファイルへのパスのみです。