把everyone的读写权限开起就可以了。

解决方案 »

  1.   

    在ASP.NET里,Web应用程序都是运行在一个特定的帐号身份下的进程里的。它所能访问的资源都和这个帐号权限有关。而用哪个帐 号可以通过machine.config文件里的processModel节点设定。默认情况下,是使用ASPNET帐号的(userName属性设为machine)。如果 贪图方便的,把userName设为SYSTEM则是使用SYSTEM的特殊帐号,拥有最大的权限。但光是改这个,无论怎么设,都是会出现异常的。 这时我突然想到建立网络驱动器连接时是用共享机上的Administrator帐号登陆的,但Web应用程序是用另一个帐号运行的,是不是和这 个有关呢?经后面的验证看来也确实是因为这个“简单”的原因。问题的关键就是在建立网络驱动器连接时,要用Web应用程序所使用的 帐号来连接。其实这是不同的机上的帐号,但就是要设置为一致才能正常运行。   下面以我总结的解决方法步骤:
    1、先明确Web应用程序是以哪个身份运行的。这可以通过查看machine.config文件的processModel节点userName属性看到。如果为 machine,就是用ASPNET帐号,如果为SYSTEM,就是SYSTEM帐号(这个是无法用来登陆连接到共享机上的,必需使用其它帐号)。 如果系统是Windows 2003,帐号可能还会有所不同。请查看参考资料链接里的那个回帖。
    2、在共享机上用相同帐号相同密码建立帐号。并赋予该帐号应有的读写权限。如果使用的是默认的ASPNET帐号,因为无法获得密码, 可能还要在运行Web程序的机上重置该帐号的密码。如果重置了ASPNET密码,还要注意修改machine.config文件,将processModel 节点的password属性(默认为Autogenerate)改为你设置的密码。
    3、用该帐号(该例子为ASPNET)建立网络驱动器映射。
    4、运行程序,看是不是可以了 :) 
      

  2.   

    network Service 的权限设置读写
      

  3.   

    machine.config的位置:%SystemRoot%\microsoft.net\framework\[version]\config 其中[version]表示.NET平台的版本号C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG
      

  4.   

    我看了一下,是userName = “machine”,但是我在映射的磁盘上赋这个用户的权限的时候发现找不到aspnet这个用户是怎么回事啊?