0

是否可以在 Windows Server 2008R2 上的 IIS7.5 中的 ASP.NET(不是 MVC)中使用相对 URL 从 Web 应用程序下的子文件夹中读取 XML 文件?

就像是:

     Dim rdr As XmlTextReader
     rdr  = New XmlTextReader( "xml\foo.xml")    // have also tried "~/xml/foo.xml"

鉴于此文件夹层次结构:

     webapp
       styles
       images
       xml

我无法让它工作。如果可能,我的相对网址是否格式不正确?

PS 我正在尝试使用 HTTP 协议,这样我就可以在浏览器开发人员工具的网络监视器中看到正在发出的请求,并且还可以避免文件系统权限问题。我让它在 Windows Server 2003 中使用物理路径工作,但该代码在 2008R2 中不起作用,我无法确定哪个虚拟用户或机器身份需要权限。我已授予 IUSR 和 ASP.NET v4.0 应用程序池标识的权限。

4

2 回答 2

0

与 ASP.NET 中的任何文件系统路径一样,您必须使用Server.MapPath

Dim rdr as XmlReader = XmlReader.Create(Server.MapPath("~/xml/foo.xml"))

如果您尝试使用 HTTP 并使用来自您网站的相对路径,那么我建议您停止尝试。如果您知道站点根目录的 URL,那么只需尝试http://mysite/xml/foo.xml.

于 2013-04-10T18:22:04.577 回答
0

您是否尝试在 URL 中使用波浪号(~)?

波浪号表示 ASP.NET 中应用程序的根目录。

例如

XmlTextReader reader = new XmlTextReader("~/xml/foo.xml");
于 2013-04-10T18:14:02.427 回答