当web.config文件放置在共享目录下(UNC),启动IIS会提示有错误信息500.19,伴随有错误代码0x80070003和错误代码0x80070005的解决办法...

最近遇到一个很有意思的使用环境,操作人员将所有的网站应用内容投放到共享存储里面,并且使用微软的SMB协议将其以CIFS的方式共享出来,使用Windows Server 2008 R2的IIS将其连接起来。在多IIS主机的情况下,实现一次部署,多点生效的效果。

不过在使用的时候遇到了一些问题,在汉语世界里面似乎这样用的环境不多,特别总结一下这样的场景,撰文分享给大家。

错误代码:0x80070003

起初的想法,操作者使用了Windows的映射网络驱动器的方法将UNC路径转换成了一个Windows的盘符,默认的Windows会给整个计算机里的第一个映射Z盘,紧接着,在IIS里面添加这个网站,建个网站的根目录指向到这个Z盘下面的wwwroot文件夹下面,启动一下,浏览后就看到了该错误代码。搜索错误代码,最有用的信息是将其更换成UNC路径而非映射盘符。

错误代码:0x80070005

更换成UNC路径之后,再次浏览后就看到了该错误代码,提示“由于权限不足而无法读取配置文件”。

clip_image001

Figure 1错误提示很明显,权限不足

关于权限相关的问题我自然的想到了procmon工具,和权限有关的肯定逃不过procmon的法眼了!

clip_image002

Figure 2工具呈现出访问被拒绝(Access Denied),path是刚刚更换的unc路径

clip_image003

Figure 3进程选项卡内看到的该进程是由这个IIS资源池下的bbbb用户启动的,这个和我们新建的网站虚拟名称一致

罗列出来的这个IIS APPPOOL\bbbb的用户我们是在Windows传统的用户和用户组下面无法查看到的,而且即便是我们先前映射了Z盘,也是需要口令密码的,这个bbbb用户应该不会走系统层面去找对应的token的,况且机器会有重启,自动更新等操作,新起来之后还要认为的输入用户名和口令(非域环境下),这显然不科学。

网上搜来搜去有些结果,归类如下:

  • 如果使用的是2003系统可以用一个vbs命令来获取到iusr用户的密码,创建网站的时候可以这样来填写认证信息,但是2008系统下面已经不能这样查看。
  • 使用subst创建虚拟映射盘符,来欺骗2008认为这个是本地硬盘而非一个UNC路径,但是这个尝试之后又会回到起初的那个0x80070003错误。
  • 还有的尝试使用mklink创建一个符号连接的方式映射到本地磁盘的固定目录,结果这个也会回到0x80070003错误。

从上面的经历来看,大家的思路有两个,一个是欺骗IIS、一个是使用破解的用户名密码去进行验证。

更换英文关键字接的搜索,突然在一个微软工程师anilr的回帖中找到了问题的解决办法,https://forums.iis.net/post/1905350.aspx

他说继续保持UNC路径,在"connect as"中输入用户名密码进行校验即可。

这个“connect as”对应中文应该是个什么呢?直译叫做“连接为”,这个好像在新建网站的时候见到过。

clip_image004

Figure 4添加网站的时候可以看到连接为,点开始后和凭证有关!

对于新网站可以这样操作,对于已经有的网站该怎么处理呢?

clip_image005

Figure 5通过搜索IIS的内置帮助,看看到底哪些地方会出现“连接为”,发现有物理路径这样的关键字出现

clip_image006

Figure 6顺而在网站的高级设置里面找到了物理路径凭据,下面的解释有需要填写用户名密码这类的要求。

根据需要在物理路径凭据下面输入可以访问那个UNC路径的用户名和密码。

这里补充说明一下,既然还是和微软的SMB协议有关,登陆验证也是基于NTLM的相同用户验证的策略,所以这里我们需要在IIS节点上创建一个和文件服务器用来共享这个UNC路径一致的用户。

否则如果你即便输入了映射时候的对端密码账号也是无效的,因为你本地IIS计算机节点上并没有这个用户。

clip_image008

Figure 7输入和对端一样的用户名密码之后点击确定,生效!

再次浏览问题全无,运行正常。

此时我们再请出Procmon看看。

clip_image009

Figure 8通过查看第一条访问文件的权限,我们看到Impersonating(伪装用户)已经是这个IIS节点上的有权限访问该UNC路径的用户了 。

至此,所有的疑惑已经解决,使用到的知识点都是基本的Windows操作原理,是从系统工作人员的角色解决WEB程序的报错的一个有意思的案例!

-=EOB=-

转载于:https://www.cnblogs.com/mannyzhoug/p/IIS-with-UNC-path-0x80070003-and-0x80070005.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值