失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 显示unc路径服务器根目录 IIS虚拟目录与UNC路径权限初探

显示unc路径服务器根目录 IIS虚拟目录与UNC路径权限初探

时间:2020-03-25 12:44:31

相关推荐

显示unc路径服务器根目录 IIS虚拟目录与UNC路径权限初探

最近在一个项目中涉及到了虚拟目录与UNC路径的问题,总结出来分享给大家。

问题描述

某客户定制化项目(官网),有一个图片上传的功能。客户的Web机器有10台,通过F5负载均衡分摊请求。

假设这10台机器的代号分别为:#1,#2,#3,#4,#5,#6,#7,#8,#9,#10

在没有应用虚拟目录时,访问者A访问官网,可能被分配至机器#1,上传图片,图片被保存在机器#1中;

再次查看时,访问者A可能被F5分配至机器#2,机器#2中没有这张图片,图片无法显示 --> 页面故障。

解决方案

服务器环境:Windows Server R2 Enterprise Service Pack1,IIS7(7601)

1. 在所有web服务器上建立windows账户site_share,密码为123456(注意各服务器建立的用户名和密码必须相同);隶属于 IIS_IUSRS组

2. 在文件存储服务器(如果有?或者这里我们从10台机器选一台,如#10机器),站点根目录下,新建文件夹"ImgShare",共享此文件夹,

授予Everyone和site_share用户读写权限。

3.在所有web服务器上,打开IIS,在站点下,新建虚拟目录 ShareFiles ,虚拟目录的路径全部指向#10机器的ImgShare文件夹,如: \\#10机器ip\ImgShare;

点击"连接为",路径凭据选择特定用户,输入第一步中建立的账户和密码。

4.设置站点的IIS身份验证(注意是站点,不是虚拟目录)

4.1 匿名身份验证

编辑匿名身份验证凭据,选择特定用户,输入第一步中建立的账户和密码。

此步骤完成后,各服务器的图片上传,都将被保存到#10机器的共享文件夹ImgShare中,并且可以看到图片上传成功,打开共享文件夹可以看到上传的图片。

但读取图片时,前端仍然无法通过 域名/ShareFiles(虚拟目录名称)/图片.jpg 的方式访问上传的图片。

这种现象,访问#10机器站点可以访问到图片,其它机器则报错:拒绝访问的异常。

为什么呢?

因为#10机器,也就是共享文件夹所在的机器,IIS进程池用户访问的是"本地"的文件,不存在权限问题;而其它9台机器,访问的是远程机器:

保存图片时,写的权限,操作的是独立的“共享”文件夹;

而读取图片时,通过url访问,不能绕过虚拟目录的“父亲”IIS站点,要向站点管理下的资源申请 url访问图片 的权限。

4.2 模拟

请选择界面操作,不要手动去修改web.config文件。即:

编辑模拟设置,选择特定用户,输入第一步中建立的账户和密码。

这样操作之后,访问机器#1的站点,IIS进程用户,就有权限去拿#10机器站点下的文件夹中的图片资源。/ShareFiles(虚拟目录名称)/图片.jpg访问成功。

总结

虚拟目录读取方法:

///

/// 获取上传目录

///

///

public static string GetUploadFolder()

{

return HttpContext.Current.Server.MapPath("~/虚拟目录名称/");

}

关于第一步中,建立的windows账户为何要归于 IIS_IUSRS用户组下的问题。这要从IIS应用程序池中寻找答案:

另外的小结:

1. IIS进程用户的权限是很低的 ,特别是A机器的IIS进程用户(IIS应用程序池)对B机器而言;

2. 本地机器的IIS执行权限通常很高(即使不高也够使用本地机器资源),在单台服务器环境通常很难发现问题;

参考文章

希望本文对你有帮助。

iis虚拟目录引发的路径问题

在iis上把web程序配置成站点是ok的,但配置成虚拟目录,就会发现 图片路径不能,样式不能加载,链接出错. 解决方案: 1,上传图片 ~/upload 2,cs程序,链接跳转,请用~/index. ...

利用iis虚拟目录实现文件服务器功能(分布式存储)

要求说明: 通过网站上传文件保存到统一的文件服务器上. 服务器说明: 1.文件服务器以下称为FilesServer,IP地址为:192.168.1.213 2.Web服务器为以下称为WebServer ...

IIS虚拟目录实现与文件服务器网络驱动器映射共享

这篇文章转载别人,想原创作者致敬! 我本人也遇到同样的问题,故转载记录. 本文重点描述如何使用IIS访问共享资源来架设站点或执行 等脚本. 通常情况下,拥有多台服务器的朋友在使用IIS ...

转:IIS虚拟目录实现与文件服务器网络驱动器映射共享

这篇文章转载别人,想原创作者致敬! 我本人也遇到同样的问题,故转载记录. 本文重点描述如何使用IIS访问共享资源来架设站点或执行 等脚本. 通常情况下,拥有多台服务器的朋友在使用IIS ...

利用iis虚拟目录实现文件服务器功能

要求说明: 通过网站上传文件保存到统一的文件服务器上. 服务器说明: 1.文件服务器以下称为FilesServer,IP地址为:192.168.1.213 2.Web服务器为以下称为WebServer ...

新建虚拟目录使用UNC共享文件夹(即:虚拟目录使用UNC共享文件夹)的方法 -摘自网络

新建虚拟目录使用UNC共享文件夹(即:虚拟目录使用UNC共享文件夹)的方法1.UNC路径:\\192.168.1.2\test\,假设连接该UNC路径的用户名为:web,密码为:123 2.在原web ...

修改IIS虚拟目录名称

@echo off echo ------------------------------------------------------------------------------ echo - ...

转:修改IIS虚拟目录名称bat脚本

@echo off echo ------------------------------------------------------------------------------ echo - ...

IIS虚拟目录挂载文件服务器目录

要求说明: 通过网站上传文件保存到统一的文件服务器上. 服务器说明: 1.文件服务器以下称为FilesServer,IP地址为:192.168.1.213 2.Web服务器为以下称为WebServer ...

随机推荐

3 Git服务器搭建

1. 环境部署 系统环境:服务器端:CentOS 6.5 ,ip:192.168.56.1 客户端:CentOS 6.5 ,ip:192.168.56.101 软件版本:服务器端:源码编译安装,git ...

Manhattan distance(for lab)

Input four integer x1, y1, x2, y2, which is mean that the coordinates of two points A(x1, y1), B(x2, ...

一个解决表单中的文字和文本区域(textarea)上对齐的方法

在进行表单布局的时候通常会遇到这样的情况 文本和textarea标签是底部对齐的

邮箱

如果觉得《显示unc路径服务器根目录 IIS虚拟目录与UNC路径权限初探》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。