Gli FIX: CallContext oggetti non vengono inoltrati quando si crea un nuovo componente servito

Traduzione articoli Traduzione articoli
Identificativo articolo: 319177 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Se si imposta oggetti CallContext prima di creare un'istanza di un componente servito in un'applicazione client, si potrebbero perdere gli oggetti CallContext dopo aver creato l'istanza dell'oggetto.

Cause

Questo problema si verifica se gli oggetti che si inserisce nel CallContext derivano dall'interfaccia ILogicalThreadAffinative . Se si inseriscono tali oggetti nel CallContext (utilizzando il metodo CallContext.SetData ) e quindi creare un'istanza di un oggetto ServicedComponent , il metodo di CallContext.GetData per tali oggetti restituisce null.

Risoluzione

Per risolvere il problema, procurarsi l'ultimo Service Pack per Microsoft .NET Framework. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
318836INFORMAZIONI: Come ottenere .NET Framework Service Pack più recente

PER RISOLVERE IL PROBLEMA

Per ovviare al problema, utilizzare uno dei metodi descritti di seguito:
  • Se si desidera utilizzare gli elementi CallContext localmente nell'applicazione non derivano questi elementi da ILogicalThreadAffinative .

    Nota : il sistema remoto non passa questi oggetti in domini applicazioni.
  • Se si desidera utilizzare i server remoti con oggetti ServicedComponent e se si desidera flusso CallContext a essi, è necessario creare un'istanza degli oggetti ServicedComponent prima di tali elementi nel CallContext .

    Se non è possibile controllare questo, è possibile memorizzare il contenuto del CallContext prima di creare un'istanza di carico quindi nuovamente il contenuto di ServicedComponent .
Nota : È impossibile sfruttare il CallContext funzionalità nelle applicazioni di ServicedComponent . Microsoft non supporta l'utilizzo di CallContext da all'interno di oggetti di ServicedComponent .

Status

Microsoft ha confermato che questo problema riguarda i prodotti Microsoft elencati all'inizio di questo articolo. Questo problema è stato corretto per la prima volta nel Service Pack 2 per Microsoft .NET Framework (SP2).

Informazioni

Con l'oggetto CallContext , è possibile inviare informazioni lungo il canale dal client al server o viceversa. CallContext fornisce un insieme di proprietà che sono eseguiti unitamente al percorso di codice l'esecuzione (catena di chiamate).

Questo problema si verifica anche con tutte le intestazioni nell'oggetto CallContext .

Procedura per riprodurre il problema

  1. Definire istanze di una classe da inserire nel CallContext:
    [Serializable]
    public class CtxObject : ILogicalThreadAffinative
    {
    	public string CtxString;
    	public CtxObject(){CtxString = "Some String" ;}
    }
    					
  2. Inserisce uno di questi oggetti in uno slot di dati CallContext e quindi creare un'istanza di un ServicedComponent :
    // Create CallContext object.
    CtxObject CtxObj = new CtxObject () ;                     
    
    // Set it in the CallContext.
    CallContext.SetData ("CtxObject", CtxObj) ;
    
    // Create the serviced component.
    MyServicedComponent MyObj = new MyServicedComponent () ;  
    
    // Retrieve the CallContext object (returns null).
    CtxObject CtxObj1 = (CtxObject) CallContext.GetData ("CtxObject") ;  
    					

Proprietà

Identificativo articolo: 319177 - Ultima modifica: lunedì 12 febbraio 2007 - Revisione: 3.3
Le informazioni in questo articolo si applicano a:
  • Microsoft .NET Framework Class Libraries 1.0
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Enterprise Services (included with the .NET Framework) 1.0
Chiavi: 
kbmt kbvs2002sp1sweep kbbug kbfix kbnetframe100sp2fix kbremoting KB319177 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 319177
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com