2

我正在运行托管在 iis express 7.5 上的 wcf 服务。在服务内部,我有一个需要在文件系统上写入文件的服务操作,但是当它尝试这样做时,我遇到了异常。

我正在将文件写入托管项目的完全相同的文件夹,方法是使用: string filePath = HttpContext.Current.Server.MapPath(".");

但我不断收到此异常:

DirectoryNotFoundException - “找不到路径 C:\websites 的一部分......

好像我的 iis express 没有写文件的权限。如果是这样,我该如何授予它许可?

谢谢!

4

2 回答 2

7
  1. IIS Express 在当前登录的用户身份下运行。如果您尝试写入的文件夹具有特殊访问权限,则为当前用户提供访问权限。

  2. File.Open(filePath, FileMode.Create) 只会创建文件,如果目录不退出,它会抛出“DirectoryNotFound”异常,这是预期的。因此,在创建文件之前,请确保该目录存在。也许你可以使用 Directory.CreateDirectory("directory path") API

于 2011-04-07T17:03:01.337 回答
3

您需要将 NETWORK SERVICE 帐户的写入权限授予您尝试写入的文件夹。此外,MapPath 方法需要一个相对 url 到虚拟目录的根目录:

var path = HttpContext.Current.Server.MapPath("~/");
于 2011-04-07T09:42:39.740 回答