Os serviços WCF hospedados no IIS no Windows 7 ou no Windows Server 2008 R2 podem receber uma mensagem de erro de exceção depois que você instala uma atualização do .NET Framework 3.5 SP1 para WCF

Aplica-se a
Windows Communication Foundation

Sintomas

Considere o seguinte cenário:

  • Seu computador está executando o Windows 7 ou o Windows Server 2008 R2.
  • O computador está executando o serviço WCF (Windows Communication Foundation) e o serviço está hospedado no IIS (Serviços de Informações da Internet). O serviço usa o protocolo HTTP ou HTTPS e está usando a autenticação do Windows.
  • Você instala algumas atualizações do Microsoft .NET Framework 3.0 Service Pack 2 ou do .NET Framework 3.5 Service Pack 1 para WCF. Por exemplo, você instala a atualização de segurança 2756920.

Nesse cenário, você pode receber uma mensagem de erro de exceção semelhante à seguinte na página solicitada:

Observação

Erro do Servidor no Aplicativo "/SecurtyTokenServiceApplication"
Método não encontrado: 'System.String
System.ServiceModel.Ativation.iis7helper.extendedprotectiondotlessspnnotenabledthrowhelper(system.object)'

Por exemplo, você pode receber a mensagem de erro ao acessar um site do Microsoft SharePoint 2010. 

Quando esse problema ocorrer, você também poderá receber a seguinte mensagem de erro no log de eventos no servidor:

Observação

WebHost falhou ao processar uma solicitação.
Informações do remetente: System.ServiceModel.ServiceHostingEnvironment+HostingManager/17653682
Exceção: System.ServiceModel.ServiceActivationException: o serviço '/SecurityTokenServiceApplication/securitytoken.svc' não pode ser ativado devido a uma exceção durante a compilação.
A mensagem de exceção é: Método não encontrado: 'System.String System.ServiceModel.Activation.Iis7Helper.ExtendedProtectionDotlessSpnNotEnabledThrowHelper(System.Object)'.. --->
System.MissingMethodException: Método não encontrado: 'System.String System.ServiceModel.Activation.Iis7Helper.ExtendedProtectionDotlessSpnNotEnabledThrowHelper(System.Object)'.
   em System.ServiceModel.WasHosting.MetabaseSettingsIis7V2.WebConfigurationManagerWrapper.BuildExtendedProtectionPolicy(ExtendedProtectionTokenChecking tokenChecking, ExtendedProtectionFlags flags, List'1 spnList)
    em System.ServiceModel.WasHosting.MetabaseSettingsIis7V2.WebConfigurationManagerWrapper.GetExtendedProtectionPolicy(elemento ConfigurationElement)
   em System.ServiceModel.WasHosting.MetabaseSettingsIis7V2.ProcessWindowsAuthentication(String siteName, String virtualPath, HostedServiceTransportSettings& transportSettings)

Causa

Esse problema ocorre porque o computador pode ter alguns hotfixes instalados que continham apenas System.ServiceModel.dll e não System.ServiceModel.WasHosting.dll. Consulte a seção "Mais informações" para obter uma lista dos hotfixes que contêm apenas esses arquivos.

Devido a esse problema, a atualização mais recente não pode instalar a mesma versão de ambos os arquivos. Isso expõe uma dependência entre os dois arquivos. Isso, por sua vez, causa a exceção mencionada anteriormente. Esse problema ocorre devido a um problema em hotfixes lançados anteriormente e não é causado especificamente pela nova atualização. A nova atualização apenas faz com que o problema apareça.

Resolução

        
        
        
Para contornar esse problema, verifique se as versões do System.ServiceModel.dll e do System.ServiceModel.WasHosting.dll estão sincronizadas.

Para resolve esse problema, instale o 2637518 de atualização ou qualquer hotfix do .NET Framework 3.0 SP2 que contenha ambos os assemblies.

Recomendamos que você instale o 2637518 de atualização para resolve esse problema. No entanto, este hotfix destina-se a corrigir somente o problema descrito neste artigo. Aplique-o somente em sistemas que apresentarem esse problema específico.

Para baixar esse hotfix do Centro de Download da Microsoft, vá para a seguinte página da Web do Centro de Download da Microsoft:

http://go.microsoft.com/fwlink/?LinkID=242859 Observação Se você já estiver enfrentando esse problema, instale a atualização 2637518. Você não precisa reinstalar a atualização que causou esse problema.

Necessidade de reinicialização

Talvez seja necessário reiniciar o computador após aplicar essa atualização.

Status

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Mais informações

Os hotfixes a seguir poderão causar esse problema se forem instalados em um computador que esteja executando o Windows 7 ou Windows Server 2008 R2 RTM e se nenhuma nova atualização do .NET Framework 3.5 SP1 para o WCF for instalada. Para obter mais informações, clique nos seguintes números de artigos para ler o conteúdo na Base de Dados de Conhecimento Microsoft:

976462 Um hotfix para o the.NET Framework 3.5 Service Pack 1 está disponível para o Windows 7 e para o Windows Server 2008 R2 como pré-requisito para o Microsoft Office Servidor do SharePoint 2010

977420 Um pacote cumulativo de hotfixes está disponível para corrigir problemas no Windows Communication Foundation no .NET Framework 3.5 SP1 para Windows 7 e Windows Server 2008 R2

982867 serviços WCF hospedados por computadores juntamente com um NLB falham no .NET Framework 3.5 SP1 ou no .NET Framework 4