ASP.Net incapaz de ver pasta compartilhada
-
21-08-2019 - |
Pergunta
Eu escrevi um novo aplicativo em uma rede que não têm trabalhado antes, e estou correndo em um problema.
Se eu tenho o seguinte código C #:
FileStream fs = File.Create(@"\\MyServer\MyShare\testing.txt");
fs.Close();
Em um aplicativo de console, este executa o código corretamente.
Em um aplicativo ASP.Net, eu recebo este erro: Falha de logon:. Nome de usuário desconhecido ou senha incorreta ??strong>
Na aplicação ASP.Net, se eu adicionar em identity impersonate = "true", eu recebo este erro:. Acesso ao caminho '\ MyServer \ MyShare \ testing.txt' é negado
Eu nunca corri para essa mensagem falha de logon antes; onde é que isto vem? Se eu criar um aplicativo no servidor e tê-lo gravar no local phsyical, ele funciona muito bem (assim, a segurança não é bom), ele só parece como se a segurança para o compartilhamento não está funcionando (mesmo que ele tem 'Everyone' set a gravações completas), ou há algo faltando no nível do servidor no qual eu não estou autorizado a vista nada em geral.
Alguém sabe o que eu sinto falta aqui? Eu escrevi outras aplicações que fizeram coisas semelhantes e nunca executar para esse problema
Obrigado!
Solução
Update:
Então, eu acho que eu postei isso muito em breve ... A razão pela qual ele estava falhando no meu localhost deveu-se ao diretório sendo definida como permitir acesso anônimo (para que a página não foi personificando, o usuário era '') <. / p>
Ele também começou a trabalhar no servidor, bem como, No entanto, nada foi mudado lá ... Eu não sei se algo foi desencadeada durante o tempo de inatividade do aplicativo / desligamento ou o que, mas tudo está funcionando como esperado.
Obrigado pelos comentários!
Outras dicas
O problema é que com o conjunto de identidade impersonate como falso a conta do processo de trabalho ASP.NET está tentando escrever para a ação, tipicamente que é a conta Serviço de rede ou ASPNET. Dependendo de qual versão do Windows você está executando.
ajuste impersonate como verdadeiro, sem especificar um nome de usuário ou senha irá utilizar a autenticação de usuários atuais para tentar fazer a solicitação.
Você terá que quer Uma conceder as permissões conta processo de trabalho, que provavelmente não é possível. Ou B criar uma conta específica que sua aplicação pode representar, em seguida, especifique as credenciais dentro do web.config na marca de identidade.
Por padrão, ASP.NET aplicativos executados como YourMachine \ IUSR_ YourMachine. Você tem que abrir as permissões no compartilhamento para o principal Todos (que ainda pode não funcionar se as máquinas não estão no mesmo domínio), ou executar o IIS aplicação como alguém que tem acesso ao compartilhamento.
Você pode alterar o usuário que o aplicativo ASP.NET é executado sob por:
.Open Ferramentas Administrativas -> Internet Information Services seguida, clique direito sobre o site ou diretório virtual que contém o aplicativo e clique em Propriedades . Escolha a Segurança de diretório e clique em Editar . Finalmente, no Acesso anónimo digite o nome de usuário ea senha de um usuário que tenha acesso ao compartilhamento.
Mike