我第一次尝试访问在IIS中创建的虚拟目录中的文件,但得到了奇怪的结果。
操作系统: Windows XP Pro
IIS: 5.1
开发平台: Visual Studio 2008
语言: C#
虚拟目录名称: portal
本地路径: 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“”,这是我的项目路径,在末尾加上了虚拟路径,它不是有效路径。我尝试使用代字号或localhost,得到一个“无法映射路径‘/portal/testFile.xlsx’”。异常。
你知道我做错了什么吗?
发布于 2010-09-11 01:01:56
如果我没记错的话,Server.MapPath(ResolveUrl("~/relative/path/to/file"))不是你想要的。它将生成一个/rooted/path/to/file,当传递给Server.MapPath()时,该not将不会生成有效位置。
相反,只需使用Server.MapPath("~/relative/path/to/file");
更新
您遇到的问题是由于您在相对URL中包含了虚拟目录名("portal")。相对URL不需要指定虚拟目录名称,只需要指定相对于应用程序根目录的所需文件的路径。
https://stackoverflow.com/questions/3686611
复制相似问题