I servizi WCF ospitati in IIS in Windows 7 o Windows Server 2008 R2 potrebbero ricevere un messaggio di errore di eccezione dopo l'installazione di un aggiornamento per .NET Framework 3.5 SP1 per WCF

Si applica a
Windows Communication Foundation

Sintomi

Si consideri lo scenario seguente:

  • Nel computer è in esecuzione Windows 7 o Windows Server 2008 R2.
  • Il computer esegue il servizio Windows Communication Foundation (WCF) e il servizio è ospitato in Internet Information Services (IIS). Il servizio usa il protocollo HTTP o HTTPS e usa l'autenticazione di Windows.
  • Installare alcuni aggiornamenti di Microsoft .NET Framework 3.0 Service Pack 2 o .NET Framework 3.5 Service Pack 1 per WCF. Ad esempio, installi l'aggiornamento della sicurezza 2756920.

In questo scenario potrebbe essere visualizzato un messaggio di errore di eccezione simile al seguente nella pagina richiesta:

Nota

Errore del server nell'applicazione '/SecurtyTokenServiceApplication'
Metodo non trovato: 'System.String
System.ServiceModel.Ativation.iis7helper.extendedprotectiondotlessspnnotenabledthrowhelper(system.object)'

Ad esempio, potrebbe essere visualizzato il messaggio di errore quando si accede a un sito Web di Microsoft SharePoint 2010. 

Quando si verifica questo problema, è possibile che venga visualizzato anche il seguente messaggio di errore nel registro eventi nel server:

Nota

WebHost non è riuscito a elaborare una richiesta.
Informazioni sul mittente: System.ServiceModel.ServiceHostingEnvironment+HostingManager/17653682
Eccezione: System.ServiceModel.ServiceActivationException: impossibile attivare il servizio '/SecurityTokenServiceApplication/securitytoken.svc' a causa di un'eccezione durante la compilazione.
Il messaggio di eccezione è: Metodo non trovato: 'System.String System.ServiceModel.Activation.Iis7Helper.ExtendedProtectionDotlessSpnNotEnabledThrowHelper(System.Object)'. --->
System.MissingMethodException: Metodo non trovato: 'System.String System.ServiceModel.Activation.Iis7Helper.ExtendedProtectionDotlessSpnNotEnabledThrowHelper(System.Object)'.
   in System.ServiceModel.WasHosting.MetabaseSettingsIis7V2.WebConfigurationManagerWrapper.BuildExtendedProtectionPolicy(ExtendedProtectionTokenChecking tokenChecking, ExtendedProtectionFlags flags, List'1 spnList)
    in System.ServiceModel.WasHosting.MetabaseSettingsIis7V2.WebConfigurationManagerWrapper.GetExtendedProtectionPolicy(elemento ConfigurationElement)
   in System.ServiceModel.WasHosting.MetabaseSettingsIis7V2.ProcessWindowsAuthentication(String siteName, String virtualPath, HostedServiceTransportSettings& transportSettings)

Causa

Questo problema si verifica perché nel computer potrebbero essere installati alcuni hotfix che contenevano solo System.ServiceModel.dll e non System.ServiceModel.WasHosting.dll. Vedere la sezione "Altre informazioni" per un elenco di aggiornamenti rapidi che contengono solo questi file.

A causa di questo problema, l'aggiornamento più recente non può installare la stessa versione di entrambi i file. In questo modo viene esposta una dipendenza tra i due file. Questo a sua volta causa l'eccezione menzionata in precedenza. Questo problema si verifica a causa di un problema negli aggiornamenti rapidi precedentemente rilasciati e non è specificamente causato dal nuovo aggiornamento. Il nuovo aggiornamento si limita a far emergere il problema.

Risoluzione

        
        
        
Per risolvere il problema, verificare che le versioni di System.ServiceModel.dll e System.ServiceModel.WasHosting.dll siano sincronizzate.

Per risolvere questo problema, installare l'aggiornamento 2637518 o qualsiasi hotfix di .NET Framework 3.0 SP2 che contiene entrambi gli assembly.

Per risolvere il problema, è consigliabile installare 2637518 di aggiornamento. Tuttavia, questo hotfix ha lo scopo di correggere solo il problema descritto in questo articolo. Applica questo hotfix solo ai sistemi che stanno riscontrando questo problema specifico.

Per scaricare questo hotfix dall'Area download Microsoft, vai alla seguente pagina Web dell'Area download Microsoft:

http://go.microsoft.com/fwlink/?LinkID=242859 Nota Se si verifica già questo problema, installa l'aggiornamento 2637518. Non è necessario reinstallare l'aggiornamento che ha causato il problema a Surface.

Richiesta di riavvio

Dopo aver applicato questo aggiornamento, potrebbe essere necessario riavviare il computer.

Stato

Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".

Altre informazioni

Gli hotfix seguenti possono causare questo problema se sono installati in un computer che esegue Windows 7 o Windows Server 2008 R2 RTM e se non sono installati nuovi aggiornamenti di .NET Framework 3.5 SP1 per WCF. Per altre informazioni, fare clic sui numeri degli articoli seguenti per visualizzare gli articoli della Microsoft Knowledge Base:

976462 Un hotfix per the.NET Framework 3.5 Service Pack 1 è disponibile per Windows 7 e per Windows Server 2008 R2 come prerequisito per Microsoft Office Server SharePoint 2010

977420 È disponibile un aggiornamento cumulativo rapido per risolvere i problemi di Windows Communication Foundation in .NET Framework 3.5 SP1 per Windows 7 e per Windows Server 2008 R2

982867 servizi WCF ospitati da computer insieme a un errore di Bilanciamento carico di rete in .NET Framework 3.5 SP1 o in .NET Framework 4