2012-05-28 20 views
1

我覺得我缺少IIS或全局文件中的一些配置?從服務器而不是本地驅動器路徑加載MVC ASP.NET中的XML文件

我要加載的XML文件:

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

當運行,因爲它試圖找到該文件@ C時失敗:\影像\體\商標\ LogoImageMappings.xml

哪有我正確地將它指向本地主機(或發佈時的Web服務器)應用程序驅動器而不是本地c:?

謝謝。

回答

7

您必須將路徑映射到文件所在的目錄。使用此:

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

Server.MapPath功能映射到服務器上的文件的完整路徑的相對路徑,用正確的目錄替換波浪號(請注意,相對路徑必須指向的子目錄中網站目錄,出於安全原因,通常您無法訪問比此更高的任何內容)。

+0

感謝您的答覆。它不幸的工作。我添加了屏幕截圖到OP。 – Shenaniganz

+0

@Shenaniganz是否有效?我在這個問題上看不到任何截圖! –

+1

啊,是的,它終於奏效了。在掙扎了一段時間之後,我注意到我的小路上有一個小小的錯字。你和Anotonio的解決方案都可以工作。我接受了你的額外解釋,我發現它很有用,也希望別人也能這樣做。 謝謝。 – Shenaniganz

4

你有虛擬路徑,獲得物理路徑使用的MapPath:

var icon = XDocument.Load(HttpContext.Current.Server.MapPath("~/images/body/logos/LogoImageMappings.xml")); 
+0

謝謝。它不幸的工作。我添加了上面的截圖(讓我知道如果它太小看不到) – Shenaniganz

+0

你可以發佈如何設置imageIconDirectory? –

相關問題