20
respostas

problema de execução do webservice no iis

boa tarde, no vs roda liso, agora quando publico um webservice no iis ocorro o seguinte erro Erro de configuração Descrição: Erro durante o processamento de um arquivo de configuração necessário para o serviço desta solicitação. Examine os detalhes específicos do erro e modifique esse arquivo de configuração apropriadamente. Mensagem de Erro do Analisador: Não foi possível localizar o tipo de provedor CodeDom "Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35". Erro de Origem:

Linha 14: Linha 15: Linha 16: já mudei a versão do framework mais não vai, o que pode ser? Desde já agradeço!!!

20 respostas

Olá Rodrigo,

como está o seu arquivo de web.config no iis? Pelo erro parece que ficou faltando o Microsoft.CodeDom.Providers.DotNetCompilerPlatform na aplicação quando ele foi compilar. O que você pode tentar fazer é instalar esta dependência com o Nuget rodando

Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

Neste link aparentemente ocorreu o mesmo erro e ele foi solucionado sobrescrevendo o seu codedom no web.config.

boa noite, o pacote já estava instalado, e web config está assim, consta tb o sugerido no link

<?xml version="1.0" encoding="utf-8"?>

Detalhe ele roda no azure e dentro do vs, menos no iis. Link do azure

http://wstesteidade20170301103105.azurewebsites.net/Validacao.asmx.

Aguardo retorno!!!!!

Olá, Rodrigo!

Verifique se existe atualização para esse pacote (na aba Updates do Nuget). Instale a atualização e veja se funciona.

Boa sorte e bons estudos!

boa tarde desculpe a demora em responder, mas o vs está atualizado, creio q o problema possa estar no iis pesquisei muito, mas nada apresentado resolveu meu problema!!!!

Alguma sugestão?

Olá Rodrigo,

eu encontrei este link de alguém que aparentemente tinha o mesmo problema que o seu no iis e a solução eles encontraram nesta dúvida deste outro link aqui em que o cara notou que no seu Web.config não tinha referência para o CodeDom. Verifique se no seu Web.config está com as referências corretas para o assembly do CodeDom e qualquer coisa, me manda o seu Web.config para eu dar uma olhada.

boa noite existe, a referência

      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />

e mesmo assim não funciona!!!!

No caso da sua exception fala de não encontrar referência para a versão 1.0.0.0, só que no seu assembly está a versão 1.0.3.0. Tem que ver também nas references do projeto se ele traz o CodeDom na versão compatível com a esperada.

boa tarde, não estou em casa, como posso fazer essa verificação?

Você pode olhar o arquivo packages.config para ver as referências que o NuGet trouxe.

Blz, si verificar q estiver faltando como farei pra corrigir?

boa noite,

<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.3" targetFramework="net452" />

está assim no packages,.config, lembrando recompilei à aplicação de dentro do visual studio funciona no azure tb, agora no iis nada o mesmo erro!!!!

Olá Rodrigo,

encontrei este link de um cara que teve exatamente o mesmo problema que o seu no IIS. Segundo ele:

After looking at a lot of possibilities, I realized that because I was deploying from a source repository and the repository did not include the BIN directory that I did not have all the dependent binaries. Once I copied the BIN folder to my IIS server into the root of the web site, all worked out just fine.

parece que estava faltando a pasta bin com todas as dependências dentro do servidor iis. Veja se lá no servidor você está com a pasta bin e se dentro dela tem o codedom. Se estiver faltando, aparentemente ele apenas mandou o mesmo bin que terá no seu projeto local que funciona.

boa noite, já tinha testado isso!!! Não funcionou!!

O mais estranho q outras aplicações funcionam aqui, essa que tem a particularidade do webservice que não!!

Olá Rodrigo,

coloca o código em um github para eu baixar e testar na mão aqui, assim consigo ver melhor se encontro o problema.

boa noite, conseguiu baixar o fonte? Só pra desencargo de consciência fiz uma maquina do nada e o erro persiste!!!

Olá Rodrigo,

consegui baixar sim, mas antes de testar estava pesquisando mais a fundo sobre esse erro e parece um problema de incompatibilidade com o IIS com o CodeDom, dado que seu projeto está usando o compilador Roslyn:

<system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
    </compilers>
  </system.codedom>

Aparentemente nem todos os servidores tem compatibilidade com este compilador. Neste link o cara comenta sobre este problema e que a solução seria remover o CodeDom do projeto. Achei este outro link comentando algo similar.