IIS reporta erro “404 Not Found” para pastas criadas no Bash WSL

6

Após a atualização mais recente da atualização do Win10 (1803), o IIS iniciou o relatório de erro "404 Not Found" para pastas criadas no Bash WSL (Windows Subsystem para Linux).

As configurações de segurança da pasta (no Windows Explorer) parecem boas. Eu até tentei fazer um "Replace all child object permissions" na pasta, mas isso não ajudou.

A pasta é armazenada na partição do Windows e acessada no WLS como /mnt/c/inetpub/wwwroot/ .

O pool de aplicativos do IIS está sendo executado em AppPoolIdentity (alterá-lo para meu usuário não ajudou).

Alguém sabe o que está acontecendo? Como isso pode ser corrigido?

P.S. Estou usando um script bash para criar meu site.

Editar

Depois de ativar a "Navegação no diretório", descobri que o IIS lista os arquivos contidos no diretório. Isso significa que ele pode acessá-lo. No entanto, por algum motivo, ele não pode atendê-los (os arquivos).

    
por knee-cola 17.05.2018 / 16:30

2 respostas

4

Esse problema foi causado por uma alteração introduzida na compilação do Win 17110, que fez com que todos os novos diretórios criados no Bash fizessem distinção entre maiúsculas e minúsculas (sinalizador com distinção entre maiúsculas e minúsculas e NTFS definido como enabled ).

Se o sinalizador estiver definido para um diretório pode ser verificado via CMD:

fsutil file queryCaseSensitiveInfo C:\interpub\wwwroot\xyz

Por alguma razão, o IIS 10.0 tem problemas para acessar um diretório se esse sinalizador estiver definido como enabled .

O problema pode ser corrigido configurando o WSL para não definir esse sinalizador como enabled por padrão. Isso pode ser feito editando o /etc/wsl.conf e adicionando case=false à lista de opções:

[automount]
options="case=off"
    
por 18.05.2018 / 15:19
1

This problem was caused by a changed introduced in Win build 17110, which made all new directories created in Bash to be case-sensitive (NTFS case-sensitive flag is set to enabled). — knee-cola

Certifique-se de que a sensibilidade do caso está desativada:

No cmd.exe ou no PowerShell:

fsutil.exe file queryCaseSensitiveInfo .
fsutil.exe file setCaseSensitiveInfo . disable

No bash.exe:

cd /
sudo umount /mnt/c
sudo mount -t drvfs C: /mnt/c -o rw,noatime,uid=1000,gid=1000,umask=22,fmask=11,metadata,case=off

Note: Not need to link directories like this: ln -s SomeDir somedir

/ets/wsl.conf:

[automount]
enabled = true
options = "case=off,metadata,umask=22,fmask=11"
mountFsTab = false

Links:

por 26.06.2018 / 15:55