为什么IIS无法在Windows上的Bash创建的文件夹中读取Web.config?

如果我使用bash(从 Ubuntu 18.04 running via Windows Subsystem for Linux开始)在我的Windows配置文件下创建一个目录:
$mkdir /mnt/c/Users/mdmower/source/repos/WebBash

然后IIS 10无法直接在该目录下读取Web.config.作为一个最小的例子,尝试将这个简单的Web.config放入由Windows资源管理器创建的目录以及由bash创建的另一个目录:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <clear />
    </handlers>
  </system.webServer>
</configuration>

现在,在IIS 10中添加一个指向Windows中创建的目录的网站.添加网站后,请访问“处理程序映射”部分.你应该看到它被清除(这是示例Web.config的唯一功能).将网站的源目录更改为在bash中创建的目录. “处理程序映射”部分不再清除.

虽然我通常认为这是由于权限,但我找不到每个目录的安全设置(属性>安全>高级)的单一差异. unix权限 – 无论如何都不重要 – 对于两个目录(drwxrwxrwx)也是相同的. PowerShell的Get-ItemProperty报告两个目录具有相同的模式(d —–)且没有LinkType.

为什么IIS 10不能从使用bash创建的目录中读取?

软件版本:
Windows 10 x64版本1803(OS Build 17134.320)
IIS 10版本10.0.17134.1

感谢他们在 github.com/Microsoft/WSL/issues/3596指出我指向正确的方向.该问题与 Per-directory case sensitivity and WSL有关.

查询目录的区分大小写标志:

fsutil.exe file queryCaseSensitiveInfo <path>

设置目录的区分大小写标志:

fsutil.exe file setCaseSensitiveInfo <path> enable
fsutil.exe file setCaseSensitiveInfo <path> disable

在WebBash目录上禁用区分大小写标志后,IIS读取Web.config就好了.这让我想到了IIS正在寻找小写web.config的可能性.我在目录WebBash上重新启用了区分大小写,并将Web.config复制到web.config(是的,Windows资源管理器允许我将它们保存在同一个文件夹中). IIS读取web.config就好了!

相关文章

(1)when you ping a computer from itsafe,the ping command should return the local IP address. (...
1、点击win菜单,点击设置图标 2、选择系统选项 3、选择应用与程序选项 4、拉到最下方,选择程序与功能...
目前一直直接往Windows 2008 R2 Server中复制文件(暂时还没有搭建ftp服务),突然不能复制了,于是百度...
windows下使用vscode配合xebug调试php脚本 要下载有php_xebug.dll扩展的版本,最新版可能没有这个扩展,p...
在控制面板的程序与功能里启用和关闭windows功能打开,适用于linux的windows子系统
效果演示 推荐一个非常牛的文档网站生成器:docsify 我通过这个工具,成功将码云上的个人学习笔记发布到...