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

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!

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top