1

IISまたはグローバルファイルの構成が不足しているように感じますか?

xmlファイルをロードしたい:

var icon = XDocument.Load("/images/body/logos/LogoImageMappings.xml");

実行すると、ファイル@ C:\ images \ body \ logos \ LogoImageMappings.xmlを見つけようとするため、失敗します。

ローカルホストではなく、ローカルホスト(または公開されている場合はWebサーバー)のアプリケーションドライブに正しく送信するにはどうすればよいですか?

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

4

2 に答える 2

7

ファイルが存在するディレクトリにパスをマップする必要があります。これを使って:

string path = Server.MapPath("~/images/body/logos/LogoImageMappings.xml");
var icon = XDocument.Load(path);

このServer.MapPath関数は、相対パスをサーバー上のファイルのフルパスにマップし、チルダを正しいディレクトリに置き換えます(相対パスは、通常はセキュリティ上の理由から、Webサイトディレクトリのサブディレクトリを指している必要があることに注意してください)。それより高いものにはアクセスしないでください)。

于 2012-05-28T21:48:19.880 に答える
5

仮想パスがあります。物理パスを取得するには、MapPathを使用します。

var icon = XDocument.Load(HttpContext.Current.Server.MapPath("~/images/body/logos/LogoImageMappings.xml"));
于 2012-05-28T21:48:39.207 に答える