在最新的 Win10 更新 (1803) 更新之后,IIS 开始为在 WSL Bash(适用于 Linux 的 Windows 子系统)中创建的文件夹报告错误“404 Not Found”。
文件夹安全设置(在 Windows 资源管理器中)看起来不错。我什至尝试在文件夹上执行“替换所有子对象权限”,但没有帮助。
该文件夹存储在 Windows 分区上,并在 WLS 中作为/mnt/c/inetpub/wwwroot/
.
IIS 应用程序池正在运行AppPoolIdentity
(将其更改为我的用户没有帮助)。
有谁知道发生了什么?如何解决这个问题?
PS 我正在使用 bash 脚本来构建我的网站。
编辑
打开“目录浏览”后,我发现 IIS 确实列出了目录中包含的文件。这意味着它可以访问它。但是由于某种原因,它无法为它们(文件)提供服务。
此问题是由 Win build 17110 中引入的更改引起的,该更改使在 Bash 中创建的所有新目录都区分大小写(NTFS 区分大小写标志设置为enabled
)。
如果为目录设置了标志,可以通过 CMD 检查:
fsutil file queryCaseSensitiveInfo C:\interpub\wwwroot\xyz
Run Code Online (Sandbox Code Playgroud)
出于某种原因,如果此标志设置为enabled
.
这个问题可以通过配置 WSL 来解决enabled
,默认情况下不设置这个标志。这可以通过编辑/etc/wsl.conf
和添加case=false
到选项列表来完成:
[automount]
options="case=off"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
745 次 |
最近记录: |