Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

Sintomi

Dopo aver installato 2018 del luglio protezione di.NET Framework e cumulativi di qualità che si applicano a.NET Framework versione 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1 e 4.7.2 su Windows 7 Service Pack 1 (SP1), Windows Server 2008 R2 SP1 o Windows Server 2008 SP2, si verificano errori in .NET Applicazione di Framework che soddisfi i seguenti criteri:

  • L'applicazione utilizza istanze della classe System.Transaction.TransactionScope in cui è attivato il flusso delle transazioni passando TransactionScopeAsyncFlowOption.Enabled al costruttore.

  • L'applicazione effettua una o più chiamate remote quando uno di questi ambiti di transazione è attivo. In questo caso, una chiamata remota è qualsiasi chiamata che passa attraverso un proxy trasparente prima di raggiungere l'oggetto server. Le chiamate ad altri domini applicazione e le chiamate effettuate tramite canali remoti, ad esempio i canali client che sono definiti spazi dei nomi System.Runtime.Remoting.Channels sono esempi di chiamate remote.

  • Dopo la chiamata remota, System.Transactions.Transaction.Current restituisce un valore null anziché il valore restituito prima della chiamata remota.

Soluzione alternativa

Per risolvere questo problema, provare uno dei seguenti metodi:

  • Per ogni ambito di transazione che consente il flusso delle transazioni, modificare l'applicazione per assicurarsi che nessun chiamate remote si verifichino in qualsiasi punto nel codice che viene eseguito mentre l'ambito di transazione è attiva. Quando si determina se un ambito di transazione contiene tutte le chiamate remote, considerare quanto segue:

    • Una chiamata a un metodo statico non è mai una chiamata remota.

    • Per una chiamata al metodo di istanza su un oggetto di destinazione, la chiamata è remota solo se l'oggetto di destinazione è un proxy trasparente.

    • Per una chiamata a un costruttore, la chiamata è remota solo se l'oggetto costruito è un proxy trasparente.

    Nota:è sempre possibile utilizzare il metodo System.Runtime.Remoting.RemotingServices.IsTransparentProxy per controllare se un oggetto è un proxy trasparente.

  • Disattivare il flusso delle transazioni rimuovendo l'argomento del costruttore TransactionScopeAsyncFlowOption.Enabled

    Avviso: Questa soluzione è che può provocare altri errori, se tutte le operazioni di "attesa" esegue mentre l'ambito di transazione è attiva.

  • La proprietà InvalidOperationException non viene serializzata automaticamente alla chiamata remota. Esso deve essere passato come parametro. Se la chiamata remota la transazione non viene passato come parametro e non effettua un callback al client durante la chiamata remota, è possibile creare la chiamata all'interno di un nuovo oggetto TransactionScope che utilizza il TransactionScopeOptions.Suppress opzione. All'interno di tale esclusione dell'ambito di transazione, la proprietà InvalidOperationException ha un valore null.

Stato

Siamo consapevoli del problema e sta lavorando su una risoluzione.

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×