Problema de permissões com o diretório virtual para o caminho UNC

12

Eu tenho um diretório virtual no meu site (ambiente de teste). É um compartilhamento UNC que também é usado como um FTP público.

Ele está configurado para se conectar como uma conta de administrador de domínio e "Configurações de teste" indica que tudo parece estar funcionando. No entanto, quando tento me conectar a ele, obtenho:

500 - "Failed to start monitoring changes on \INTRANET\FTP\test\web.config because access was denied"

Este é um ASP.NET YSOD. Não tenho certeza porque o ASP.NET está se envolvendo, pois é um arquivo .jpg estático que estou solicitando.

Eu tentei ativar o rastreamento de solicitação com falha e este é o erro específico:

  • ModuleName WindowsAuthentication
  • Notificação 2
  • HttpStatus 500
  • HttpReason Erro interno do servidor
  • HttpSubStatus 0
  • ErrorCode 0
  • ConfigExceptionInfo
  • Notificação AUTHENTICATE_REQUEST
  • ErrorCode A operação foi concluída com sucesso. (0x0)

Se eu alterar o "Tipo de login do caminho físico" de ClearText para Network. Eu recebo o seguinte erro do IIS:

HTTP Error 500.19 - Internal Server

Error The requested page cannot be accessed because the related configuration data for the page is invalid.

Detailed Error Information Module IIS Web Core Notification BeginRequest
Handler Not yet determined
Error Code 0x80070005 Config Error Cannot read configuration file due to insufficient permissions
Config File \?\UNC\INTRANET\FTP\test\web.config Requested URL http://test.mydowmain.com:80/uploads/images/ca49acf6-6174-412e-8abd-59fab983e931.jpg

Physical Path \INTRANET\FTP\test\images\ca49acf6-6174-412e-8abd-59fab983e931.jpg

Logon Method Not yet determined
Logon User Not yet determined
Failed Request Tracing Log Directory C:\inetpub\logs\FailedReqLogFiles

Isso não gera um registro de solicitação com falha por incrível que pareça - configurei o rastreamento de solicitação com falha para rastrear erros com códigos de erro 400-999.

Também vale a pena observar que, se eu abrir o recurso de configuração de dentro do IIS, vejo um erro de acesso negado.

Eu tenho exatamente o mesmo configurado em minha máquina dev local para o mesmo caminho UNC e o mesmo usuário que ele funciona. Apenas no servidor de teste isso não acontece.

O que estou fazendo de errado?

    
por Rob Stevenson-Leggett 11.06.2011 / 12:42

6 respostas

10

O fato de que é um aplicativo ASP.net é provavelmente exatamente o que o problema está aqui. A identidade do pool de aplicativos precisa ter direitos (não necessariamente a identidade do IIS; por padrão, a identidade do pool de aplicativos é a conta do Serviço de Rede local.) Você provavelmente também precisará executar o caspol.exe na máquina do IIS.

link

link

%windir%\Microsoft.NET\Framework\v2.0.50727\caspol -m -ag 1.  -url "file://\remotefileserver\content$\*" FullTrust
    
por 11.06.2011 / 22:07
5

Resolvi nosso problema criando contas correspondentes no servidor da web e no servidor unc. Em seguida, modifiquei o pool de aplicativos para ser executado usando essa conta correspondente e não o serviço de rede. Isso me deu a flexibilidade de sincronizar a senha em ambos os servidores sem afetar outras funções dependentes do serviço de rede.

    
por 17.02.2013 / 06:32
2

Se essa origem compartilhada não for um aplicativo (eq uma pasta de imagem), tente configurar o diretório virtual para ser ignorado pelo aplicativo raiz que inclui o diretório virtual (no meu caso, concluí isso alterando o aplicativo raiz tipo de pool como Clássico em vez do modo Integrado). Mas se houver um aplicativo no ponto compartilhado, você poderá seguir o caminho indicado por @mfinni.

    
por 23.02.2012 / 10:34
1

Você pode verificar se a conta em que o IIS está sendo executado tem direitos corretos / necessários para a UNC problemática.

    
por 11.06.2011 / 19:27
1

Eu tive o mesmo problema no IIS 7.5 e encontrei a solução:

  1. Crie um usuário local no servidor com o compartilhamento
  2. Crie o compartilhamento de rede, dando ao usuário criado na etapa 1 as permissões desejadas. O Windows irá configurar as permissões para o usuário que você especificou
  3. Vá para o diretório virtual no IIS e abra as "configurações avançadas"
  4. Insira o URL no caminho físico do compartilhamento de rede como \<servername>\<sharename>
  5. clique em Credenciais do caminho físico; adicione as credenciais para o usuário criado na etapa 1
por 17.06.2015 / 16:41
0

Houve apenas o mesmo problema com um servidor da Web que não é de domínio, acessando alguns recursos do domínio usando uma conta de domínio. Estávamos com um comportamento estranho ("credenciais de teste" falhariam mesmo sabendo que as credenciais estavam corretas, poderíamos ver pastas e arquivos na visualização de conteúdo, mas não poderíamos "navegar" nelas). A solução foi criar um usuário local na máquina com o mesmo nome do usuário do domínio.

Estou pensando que isso teria acontecido se o servidor web fosse um membro do domínio, e o usuário local fosse necessário para obter alguns recursos locais (config?) para mapear o virtual.

Espero que ajude alguém.

    
por 06.09.2017 / 22:51