美文网首页Windows
IIS读取远程共享目录

IIS读取远程共享目录

作者: Rakutens | 来源:发表于2020-12-09 12:55 被阅读0次

    先说解决步骤:

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

    <system.web>  
    <identity impersonate="true" userName="User01" password="对应User01的密码" />  
    </system.web>
    

    或者

    应用程序池的 基本设置:.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读取远程共享目录

        本文链接:https://www.haomeiwen.com/subject/gqhhgktx.html