Erro ao consumir o serviço Web do aplicativo Winform - “Não é possível executar um programa…”

StackOverflow https://stackoverflow.com/questions/62268

  •  09-06-2019
  •  | 
  •  

Pergunta

Eu tenho um aplicativo winform que chama um serviço web para verificar se há atualizações.Isso funciona no dev e também funciona em qualquer outro lugar que eu tentei, mas não na cópia instalada na minha máquina (que é a mesma no dev).

O erro é:

Não é possível executar um programa.O comando que estava sendo executado era "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe" /noconfig /fullpaths @"C:\Documents and Settings\Giovanni.DOUBLE-AFSSZ043\Local Settings emp\squ8oock .cmdline".

O firewall está desabilitado e procurei por "C:\Documents and Settings\Giovanni.DOUBLE-AFSSZ043\Local Settings emp\squ8oock.cmdline" e não está lá.Observe que toda vez que tento usar o serviço ".cmdline" é diferente, por exemplo, na segunda vez que o executei, foi "dae8rgen.cmdline". Não importa o nome que ele tenha, nunca consigo encontrar o arquivo.

Alguma sugestão?

Foi útil?

Solução

O arquivo ".cmdline" é um arquivo gerado automaticamente produzido pelo .NET framework.O aplicativo está tentando compilar em tempo real um serializador XML usado para analisar os dados do serviço web.

Você verificou que pode executar "csc.exe" em uma janela de linha de comando?Mesmo apenas digitando "C: Windows Microsoft.net Framework V2.0.50727 csc.exe /?" deve obter uma lista de opções do compilador (ou deve lhe dar um erro se você não tiver permissões para executá -lo).

Em qual conta de usuário você está executando isso e ela tem permissões para executar arquivos .exe no diretório do Windows?Da mesma forma, sei que você disse que isso acontece com a cópia instalada em sua máquina, mas é possível que ela esteja executando um compartilhamento de rede e recebendo permissões limitadas de segurança de acesso ao código que impediriam a execução de executáveis ​​locais?

Para referência, aqui está um artigo da base de conhecimento que mostra um erro semelhante que pode ocorrer no ASP.NET quando a conta do usuário não tem permissões suficientes.http://support.microsoft.com/kb/315904

Outras dicas

Eu tive o mesmo problema e descobri que fiquei sem memória.

Depois de verificar o "ANTS Memory Profiler" do Redhats, descobri que tinha uma grande quantidade de memória no COM + das raízes do GC.Uma rápida pesquisa no Google e me encontrei aqui: msdn XmlSerializadores

Então li o seguinte:

Se você usar algum dos outros construtores, várias versões da mesma montagem são geradas e nunca descarregadas, o que resulta em um vazamento de memória e desempenho ruim.A solução mais fácil é usar um dos dois construtores mencionados anteriormente.Caso contrário, você deve cache os assemblies em um hashtable ...

Depois de criar uma tabela hash para os serializadores, meu problema de vazamento de memória (e baixo desempenho) e a mensagem de erro resultante como a sua desapareceram.

Resolvi o mesmo problema com um ISSReset

Se o AppLocker for aplicado, permita abaixo (adicione como exceção de caminho)

c:\windows\MICROSOFT.NET\FRAMEWORK\V2.0.50727\CSC.EXE c:\windows\MICROSOFT.NET\FRAMEWORK\V2.0.50727\CVTRES.EXE

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