Waitforexit Access Is Denegado
Eu tenho um aplicativo asp que usa process. start para chamar um executável (Graphviz). Tudo funciona bem no meu ambiente de desenvolvimento, mas quando mudo para a produção, não consigo executar o processo. Heres os detalhes. Criei esse sub simples para mostrar o problema. Há três cenários aqui. Primeiro, estou testando simplesmente iniciando o bloco de notas. - Trabalhos de desenvolvimento - Trabalhos de produção (Este é o único caso em que eu poderia começar a trabalhar na produção). Em segundo lugar, criei um arquivo de lote simples que abre um documento no bloco de notas. (Notepad c: test. dot) Trabalhos de desenvolvimento Produção não funciona Terceiro, eu estou chamando Graphvizs dot. exe. Isto é o que estou tentando trabalhar em outra página. Trabalhos de desenvolvimento A produção não funciona Em todos os casos em que a produção não funciona Eu posso reproduzir esse comportamento - Se eu adicionar uma personagem real à minha web. config, não recebo erros de volta. A página é executada como se fosse bem sucedida. Se eu não adicionar uma configuração de representação pessoal, mas adicione as credenciais ao objeto ProcessInfo, a página será novamente executada sem erro. No entanto, o processo não foi iniciado na produção. Se eu não adicionar as credenciais de representação ou ProcessInfo, então recebo um erro. Esta é a saída do erro. O acesso é negado Descrição: uma exceção não tratada ocorreu durante a execução da solicitação da web atual. Revise o rastreamento da pilha para obter mais informações sobre o erro e onde ele se originou no código. Tentei uma variedade de configurações relacionadas à segurança. Atualmente meu pool de aplicativos está sendo executado com uma identidade que é um administrador local. Também tentei adicionar todos ao grupo de administradores na tentativa de ver se a segurança era o problema de raiz. Além disso, estou usando o Plesk para administrar meu domínio. Procurei amplamente por quaisquer opções que possam estar afetando essa situação e ainda não encontraram. Novamente, o início do processo funciona na produção ao fazer uma chamada simples para iniciar o bloco de notas. É muito difícil reduzir isso sem mais registros detalhados. Agradeço antecipadamente por qualquer ajuda que você possa oferecer. Isso está me deixando louco. Solicitado 21 de fevereiro às 10:46 Verifiquei que este é o mesmo usuário retornado pela Security. Windowsidentity. GetCurrent. User. Eu também segui adiante e concedei explicitamente a mesma permissão do usuário ao amplificador de arquivos envolvido com o pedido, mas tenho o mesmo resultado. Tenha em mente que eu posso executar o aplicativo usando uma conta de administrador, mas o processo nt realmente é executado com a exceção do primeiro exemplo em que o bloco de notas foi iniciado. Ndash DataMe 21 de fevereiro de 13 em 17: 42 Escreveu um código que iria lançar uma aplicação usando o processo. Iniciar, na máquina de desenvolvimento funcionou sem um problema, mas quando implantado na máquina cliente, ele começou a dar erro 8220Access Denied8221. Descobriu-se que, quando o código é executado no ambiente de usuário controlado por domínio Process. Start precisa de um conjunto de credenciais de segurança por padrão para executar. Agora, no cenário prático, não podemos codificar apenas qualquer credencial ou mesmo solicitar a entrada. A solução, existe um atributo chamado UseShellExecute que precisa ser definido False. Isso permitirá que o exe seja lançado sem credenciais. O código de exemplo é assim: System. Diagnostics. Process p new System. Diagnostics. Process () p. StartInfo. FileName path p. StartInfo. Arguments string. Format (82208221 8221 8221 82218221, arg1, arg2) p. StartInfo. UseShellExecute false P. Start () p. WaitForExit ()
Comments
Post a Comment