发布在IIS6.0上的网站,执行SetCurrentDirectory方法时出现异常:
System.UnauthorizedAccessException: Access to the path 'D:\www\web\2012330zhang2.com_2mk8pM0wDKEGJXWh8uy5\wwwroot\App_Data' is denied. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.Directory.SetCurrentDirectory(String path) at createLucenceIndex.Page_Load(Object sender, EventArgs e) in d:\www\web\2012330zhang2.com_2mk8pm0wdkegjxwh8uy5\wwwroot\createLuceneIndex.aspx.cs:line 16
看这样子应该是权限问题,有谁知道执行这个方法具体需要哪个用户和权限呢?

解决方案 »

  1.   

    Asp.net   network  service
      

  2.   

    需要下面两个
    FileIOPermission  
    for writing to files or directories. Associated enumeration: FileIOPermissionAccess.Write
    IIS6应该是需要ASPNET用户对文件夹有写权限SecurityPermission  
    for calling unmanaged code. Associated enumeration: SecurityPermissionFlag.UnmanagedCode
      

  3.   

    network service这个用户的读写权限已经有了,但还是会抛出这异常。
      

  4.   

    createLuceneIndex.aspx.cs:line 16    看下你的那个文件夹是否存在。
    代码有问题吧,代码贴出来,
      

  5.   


    System.UnauthorizedAccessException  晕是这个错误,我看错了,NETwork  service给完全控制试下,还有aspnet  用户
      

  6.   

    代码只有这么一句
    System.IO.Directory.SetCurrentDirectory(Server.MapPath("~/Bin"));
    完全控制权限服务商是不肯给的,只肯给“读取”、“写入”和“列出文件夹目录”这三个权限,要不然也不用这么纠结。
      

  7.   

    哦,错了,代码是
    System.IO.Directory.SetCurrentDirectory(Server.MapPath("~/Bin"));
    这句,拷贝错了。
      

  8.   

    同意四楼,应该是ASPNET用户对文件夹有写权限
      

  9.   

    关于添加aspnet用户的方法,正在测试,服务商那边慢吞吞地,还没给回复。
      

  10.   

    添加aspnet用户的读写权限,还是蹦出那错误。