访问c#web应用程序中的内容文件

时间:2011-10-21 20:13:47

标签: c# iis linq-to-xml virtual-directory xml

我现在已经有3天这个问题了 我有一个标记为ContentAlways Copy的xml文件 该文件已复制到:
C:\Users\avi\Documents\Visual Studio 2010\Projects\ExpressBroker\ExpressBroker\bin\XMLMetadata\Actions.1.xml

访问文件时:

//like that:
XDocument actions = XDocument.Load("bin\\XMLMetadata\\Actions.1.xml");
//or like that:
XDocument actions = XDocument.Load("XMLMetadata\\Actions.1.xml");
//or like that:
XDocument actions = XDocument.Load("Actions.1.xml");

我收到以下异常: Exception Details: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Program Files\IIS Express\bin\XMLMetadata\Actions.1.xml'.

为什么在IIS文件夹中搜索过?我该如何访问该文件?

我正在使用IIs Express和VWD2010

3 个答案:

答案 0 :(得分:6)

您需要使用

获取Web应用程序的相对路径
Server.MapPath("/")+"bin\\XMLMetadata\\Actions.1.xml" 
像那样。

答案 1 :(得分:2)

使用

XDocument.Load(Server.MapPath("~/XmlMetaData/Actions.1.xml"));

答案 2 :(得分:1)

如果文件是静态的,那么最好嵌入它并使用Assembly.GetExecutingAssembly()。GetManifestResourceStream()。