O IIS não pode acessar arquivos no diretório virtual do OneFS - erro 404

1

Eu tenho um servidor IIS com um diretório virtual chamado "teste" apontando para um compartilhamento em um servidor Isilon OneFS (\\ 192.168.X.X \ test) usando o protocolo SMB. Eu configurei o DefaultAppPool para ser executado como um usuário especial que criei que tenha acesso ao compartilhamento.

Quando eu navego até o diretório virtual ( link ), eu obtenho uma listagem de diretórios, e ela lista todos os arquivos desse diretório conforme o esperado . No entanto, se eu navegar para um arquivo real ( link ), recebo um erro 404 do IIS. O mesmo acontece se eu tentar navegar para um subdiretório.

Eu verifiquei que posso acessar os arquivos muito bem no Windows Explorer. Eu posso remotamente para o servidor IIS, abra o Windows Explorer, vá para \\ 192.168.X.X \ test e abra arquivos bem. Por que o IIS me fornece um erro 404, então?

EDIT: Eu criei uma unidade mapeada para \\ 192.168.X.X \ test que se conecta usando o mesmo usuário do IIS, e posso abrir arquivos da unidade mapeada muito bem.

Também verifiquei se os tipos MIME necessários estão definidos no IIS.

    
por AJ Richardson 15.01.2015 / 23:40

1 resposta

1

Acontece que o verdadeiro problema é com a diferenciação de maiúsculas e minúsculas: o OneFS (sendo um sistema operacional baseado no Linux) faz distinção entre maiúsculas e minúsculas e o Windows não.

O IIS7, em sua grande sabedoria, converte o nome do arquivo solicitado para ALL ALLPERCASE antes de enviar a solicitação para o OneFS. Assim, o OneFS informa ao IIS que o arquivo não existe e o IIS retorna um erro 404.

A solução é alterar os nomes de todos os arquivos e pastas no compartilhamento para ficarem todos em maiúsculas.

Como isso é um pouco trabalhoso, se alguém souber como convencer o IIS a enviar o nome do arquivo como está (sem capitalizá-lo), poste outra resposta.

EDITAR: Nosso servidor do OneFS estava usando uma codificação de caracteres que NÃO era UTF-8. De acordo com a documentação do OneFS, ele não diferencia maiúsculas de minúsculas, desde que a codificação de caracteres esteja definida como UTF-8. No entanto, não podemos usar UTF-8, então não posso verificar se isso funciona.

Documentação relevante do OneFS:

You can modify the character encoding set for the EMC Isilon cluster after installation

Only OneFS-supported character sets are available for selection. UTF-8 is the default character set for OneFS nodes.

NOTE: If the cluster character encoding is not set to UTF-8, SMB share names are case sensitive.

You must restart the cluster to apply character encoding changes.

CAUTION: Character encoding is typically established during installation of the cluster. Modifying the character encoding setting after installation may render files unreadable if done incorrectly. Modify settings only if necessary after consultation with Isilon Technical Support.

    
por 16.01.2015 / 23:37

Tags