我安装了IIS 7.0,并且有一个带有.svc服务的.net应用程序。
我想在应用程序指向的虚拟目录中指出一个文件(请注意我在应用程序中转换了我的虚拟目录)。
但是,当我尝试打开一个文件时,在.net-verse中使用一般的api调用,并且不指定根(完整)路径而是相对路径,当找不到资源时,我最终会出错
如何获取应用的物理路径?
请注意,这是一个Web应用程序。它无法使用Request
对象,因为它需要通过我的应用程序托管的Web服务进行此调用。
答案 0 :(得分:31)
尝试这可能有助于解决您的问题
string apPath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;
或
string apPath = System.Web.Hosting.HostingEnvironment.MapPath("~/folder/file");
答案 1 :(得分:3)
如果您使用的是控制台应用程序项目模板或Web应用程序以外的任何其他模板,则必须添加对System.Web的引用。
然后,您将能够引用System.Web.Hosting命名空间。
希望这有帮助!