IIS读取远程共享目录

先说解决步骤:

1.在共享服务器上新建一个用户,在共享目录里为此用户分配读或写权限.
2.在IIS服务器上添加一个远程共享目录的网络位置(非必须).
3.在IIS服务器上添加一个本地用户,用户名和密码与步骤1的相同.
4.将IIS服务器上新建的这个本地用户分配进Administator组或IIS组.
5.在WEB.config中添加如下代码:

  
  

或者

应用程序池的 基本设置:.net clr 版本 :4.0,托管管道模式:【经典】 高级设置:启动32位程序:true ,进程模型下的标志:自定义账号,输入 User01/对应密码.

两者选其一即可,效果相同

6.完工

再来聊聊原因:

1. 为什么IIS访问不了?

IIS使用的权限为IUSR_电脑名或IWAM_电脑名,并不属于Everyone,所以即使远程目录连接成功,并被设置为Guest可调用,依然是访问不到共享目录的

2. 为什么开发的时候VS可以访问?

因为VS用的是Administrator权限

3.为什么需要在IIS服务器上建本地帐户

我们必须指定一个帐号来替代IIS默认的帐号去访问远程共享目录,但IIS默认的帐号在项目运行时需要访问C:\Windows下DotNet 框架的临时文件目录(别问为什么,我TM也不知道微软为什么要这么搞),所以唯一的办法就是在本地建个相同的帐号,并为它分配本地相应的权限,好让它能去读写C:\Windows

注意!

  1. 不建议使用IIS虚拟目录方式来共享读取,容易有安全问题
  2. 不建议为IIS使用的共享帐号分配Administrator权限
  3. 如果不想在webconfig中明文保存共享帐号,可考虑使用aspnet_setreg.exe

你可能感兴趣的:(IIS读取远程共享目录)