Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf iis express文件访问权限_Wcf_Iis Express - Fatal编程技术网

Wcf iis express文件访问权限

Wcf iis express文件访问权限,wcf,iis-express,Wcf,Iis Express,我正在运行托管在iis express 7.5上的wcf服务。 在服务内部,我有一个需要在文件系统上写入文件的服务操作,但是当它尝试这样做时,我得到了一个异常 我正在使用以下方法将文件写入项目所在的文件夹中: 字符串filePath=HttpContext.Current.Server.MapPath(“.”) 但我一直得到这样一个例外: DirectoryNotFoundException-“找不到路径C:\websites…的一部分。” 似乎我的iis express没有写入文件的权限。 如

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

我正在使用以下方法将文件写入项目所在的文件夹中: 字符串filePath=HttpContext.Current.Server.MapPath(“.”)

但我一直得到这样一个例外:

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

似乎我的iis express没有写入文件的权限。 如果是,我如何给予许可


谢谢!

您需要将网络服务帐户的写入权限授予您尝试写入的文件夹。此外,MapPath方法还获取虚拟目录根目录的相对url:

var path = HttpContext.Current.Server.MapPath("~/");
  • IIS Express以当前登录的用户身份运行。如果您尝试写入的文件夹具有某些特殊访问权限,请向当前用户提供访问权限

  • File.Open(filePath,FileMode.Create)将仅创建文件,如果目录不退出,则会引发“DirectoryNotFound”异常,这是预期的。因此,在创建文件之前,请确保目录存在。您可能可以使用directory.CreateDirectory(“目录路径”)API


  • 感谢您的快速回复!我要说的是,我试图创建的文件应该创建在一个仍然不存在的文件夹中,因此我使用FileStream fs=file.Open(filePath,FileMode.create);我将所有权限授予了网络服务,并将其添加到我的c:\文件夹中,但仍然得到相同的异常:找不到路径“C:\websites\myproject\project.Web\newfolder\21Icon.jpg”的一部分。“当我尝试写入文件时,即使具有对文件夹的网络服务写入权限,我也会遇到访问被拒绝的错误:/谢谢!当我先创建目录,然后才创建文件时,问题就解决了。我认为File.Open应该一起做这一切,但我确实错了。