Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

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.