我正在运行iis express 7.5上托管的wcf服务。 在服务中,我有一个需要在文件系统上写一个文件的服务操作,但是当它试图这样做时,我得到一个例外。
我正在将文件写入托管项目的完全相同的文件夹,方法是使用: string filePath = HttpContext.Current.Server.MapPath(“。”);
但我一直得到这个例外:
DirectoryNotFoundException - “无法找到路径C:\ websites ....
的一部分似乎我的iis express没有写文件的权限。 如果是的话,我该如何给予许可?
谢谢!
答案 0 :(得分:6)
IIS Express在当前登录的用户身份下运行。如果您尝试编写的文件夹具有一些特殊访问权限,则为当前用户提供访问权限。
File.Open(filePath,FileMode.Create)只创建文件,如果目录没有退出,它会引发'DirectoryNotFound'异常并且是预期的。因此,在创建文件之前,请确保该目录存在。可能你可以使用Directory.CreateDirectory(“目录路径”)API
答案 1 :(得分:3)
您需要将NETWORK SERVICE帐户的写入权限授予您尝试编写的文件夹。此外,MapPath方法将相对url作为虚拟目录的根目录:
var path = HttpContext.Current.Server.MapPath("~/");