如果文件、文件夹安全设置不让IUSER_机器名读写的话,那么ASP.Net的程序读写是会发生错误的,IIS就是以一个特殊的帐号IUSER_机器名运行的,但是权限不高!

解决方案 »

  1.   

    运行asp.net的账号是以aspnet这个用户运行的,并不是登陆的administrator,跟administrator,不过你可以给aspnet这个账号更大的权限,一般不建议。
      

  2.   

    那么我在什么地方可以设置IUSER_机器名 的账号的权限呢?是在文件的访问控制中添加这个账号并修改其权限吗?
      

  3.   

    normally, the pages run under ASPNET account, if you want them to run under great privileges, change the userName attribute in <processModel> in machine.config (normally located in C:\WINNT\Microsoft.NET\Framework\v1.1.4322\CONFIG) to "SYSTEM". Note, this is not recommended
      

  4.   

    To:saucer(思归, MS .NET MVP) 
    如果不推荐这么做,那我需要如何来满足目前的需要,访问有权限控制的目录或文件,在目标文件中添加ASPNET这个用户名,并把其权限设置成可读写,这样可以吗?(好像是不可以),那我应该怎么办呢?
      

  5.   

    这样should be可以, or see suggestions inRunning ASP.NET on a Domain Controller
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wss/wss/_exch2k_running_asp_net_on_a_dc.asp
      

  6.   

    楼主的意思应该是在文件系统为NTFS没有设置网络共享,如果本机的文件系统是FAT或FAT32就不存在读写文件错误了, 在所要读写的文件夹的属性->安全->添加->双击名称下的Everyone->确定;然后在所要读写的文件夹的属性窗口单击选取Everyone->选中完全控制->确定.这样就可以在这个文件夹中任意的读写文件了.
      

  7.   

    是的。一般登陆后,是用ASPNET用户访问文件的。
      

  8.   

    我自己调试时都是把在ntfs下的目录权限开到最大,反正也是自己的机器,省得那么多麻烦,  :)
      

  9.   

    感谢大家的帮忙,把问题总结一下,供大家参考:
        1.ASP.NET的程序是以ASPNET的用户名运行的,安装.net的时候会自动建立一个系统用户:ASPNET
        2.所以开放读写权限给ASPNET这个用户,就可以使ASPNET的程序读写NTFS格式下的文件系统。
        3.我开始之所以没有通过,是我犯了一个有趣的错误,就是,我是给用远程登陆工具给客户上传文件的,这样创建的文件的所有者就是我上传时用的账号,这样由于ASPNET不是这个文件的所有者,所以会出现不能访问的错误。
        4.开始给分,多少请不要计较,呵呵。