我正在尝试访问我在IIS中首次创建的虚拟目录中的文件,但结果却很奇怪。
操作系统:Windows XP专业版
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 \ WebSites \ clientsite \ localhost \ portal \ testFile.xlsx”这是我的项目路径,其末尾是虚拟路径,而不是一条有效的道路。我尝试使用波形符或本地主机,然后得到“无法映射路径'/portal/testFile.xlsx'。”异常。
任何想法我做错了什么?
答案 0 :(得分:1)
如果我没弄错的话,Server.MapPath(ResolveUrl("~/relative/path/to/file"))
不是你想要的。它将产生/rooted/path/to/file
,当传递给Server.MapPath()
时,不会产生有效的位置。
而是简单地使用Server.MapPath("~/relative/path/to/file");
您遇到的问题是由于您在相对URL中包含虚拟目录名称(“portal”)。您的相对URL不需要指定虚拟目录名称,只需指定相对于应用程序根目录的所需文件的路径。