加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-13 23:17:59 所属栏目:Windows 来源:网络整理
导读:如果我使用bash(从 Ubuntu 18.04 running via Windows Subsystem for Linux开始)在我的Windows配置文件下创建一个目录: $mkdir /mnt/c/Users/mdmower/source/repos/WebBash 然后IIS 10无法直接在该目录下读取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就好了!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读