Windows Server 2012R2 IIS FTP站点挂载Azure文件共享虚拟目录失败
针对你遇到的错误"Path might not exist and could not be verified.",Windows Server 2012R2确实需要以下特殊配置,区别于Windows Server 2016+环境:
改用UNC路径而非映射驱动器
映射驱动器属于用户上下文,而IIS服务运行在系统上下文,无法直接访问用户挂载的驱动器。直接使用Azure文件共享的UNC路径作为虚拟目录物理路径,格式为:\\<存储账户名>.file.core.windows.net\<共享名称>配置FTP虚拟目录的物理路径凭据
在IIS管理器中创建虚拟目录时,选择“连接为”→“特定用户”,输入Azure存储账户的名称(完整格式为<存储账户名>)和存储账户访问密钥,而非依赖应用池身份。这能确保IIS拥有访问Azure文件共享的明确权限。关闭IIS物理路径验证
IIS8.5默认的物理路径验证机制无法正确识别Azure文件共享的网络路径,需禁用该验证:- 打开IIS管理器,选中目标FTP站点
- 点击右侧“高级设置”
- 将“物理路径验证”设置为
False
或者执行命令行:
appcmd set config "你的FTP站点名称" -section:system.applicationHost/sites /"[path='/'].virtualDirectoryDefaults.physicalPathValidation":"False" /commit:apphost安装SMB3.0相关系统补丁
Windows Server 2012R2的早期SMB3.0客户端对Azure文件共享的支持存在兼容性问题,需安装最新的累积更新(如KB3114025及后续补丁),确保SMB客户端能正常与Azure文件共享交互。验证应用池身份权限(可选)
如果坚持使用应用池身份访问,需将应用池身份(格式为IIS AppPool\<应用池名称>)添加到Azure文件共享的权限列表中,赋予读写权限。可通过Azure门户的存储账户→文件共享→“访问控制(IAM)”添加该身份,或在本地共享权限中配置。
内容的提问来源于stack exchange,提问作者Sandeep Kumar

