Oprava: CallContext objekty jsou ztraceny při vytvoření nové součásti servisu

Překlady článku Překlady článku
ID článku: 319177 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Pokud nastavíte CallContext objekty před vytvořit instanci součásti servisu v klientské aplikaci, můžete ztratit CallContext objekty po vytvoření instance objektu.

Příčina

K tomuto problému dochází, pokud objekty umístit v CallContext odvodit z rozhraní ILogicalThreadAffinative. Pokud tyto objekty umístit v CallContext (pomocí metody CallContext.SetData) a potom vytvořit instanci objektu ServicedComponent metoda CallContext.GetData tyto objekty vrátí hodnotu null.

Řešení

Tento problém vyřešíte pomocí nejnovější aktualizace service pack pro rozhraní Microsoft .NET Framework. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
318836INFORMACE: Jak získat nejnovější .NET Framework Service Pack

Možné řešení

Pro řešení tohoto problému, použijte jednu z následujících metod:
  • Pokud potřebujete použít položky CallContext místně v aplikaci, není odvozen tyto položky z ILogicalThreadAffinative.

    Poznámka: systém vzdálené komunikace přes AppDomains nepředá tyto objekty.
  • Pokud chcete používat servery vzdálené komunikace s objekty ServicedComponent a chcete jim toku CallContext, musíte vytvořit instanci ServicedComponent objekty před umístěte tyto položky v CallContext.

    Nelze řídit to můžete ukládat obsah CallContext před vytvořit instanci ServicedComponent a potom zatížení zpět v obsahu.
Poznámka: je nemůže využívat výhod funkce CallContext v aplikacích ServicedComponent. Společnost Microsoft nepodporuje použití CallContext z v rámci ServicedComponent objekty.

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny na začátku tohoto článku. Tento problém byl poprvé opraven aktualizací Microsoft .NET Framework Service Pack 2 (SP2).

Další informace

Objekt CallContext můžete odeslat informace spolu kanálu z klienta na server nebo naopak. CallContext obsahuje sadu vlastností, které jsou přenášeny spolu s cesta spuštění kódu (řetěz volání).

K tomuto problému dochází také s všechny hlavičky v objektu CallContext.

Postup reprodukce problému

  1. Definovat instance třídy umístit CallContext:
    [Serializable]
    public class CtxObject : ILogicalThreadAffinative
    {
    	public string CtxString;
    	public CtxObject(){CtxString = "Some String" ;}
    }
    					
  2. Umístěte jeden z těchto objektů v patici CallContext data a vytvořit instanci 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") ;  
    					

Vlastnosti

ID článku: 319177 - Poslední aktualizace: 12. února 2007 - Revize: 3.3
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft .NET Framework Class Libraries 1.0
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Enterprise Services (included with the .NET Framework) 1.0
Klíčová slova: 
kbmt kbvs2002sp1sweep kbbug kbfix kbnetframe100sp2fix kbremoting KB319177 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:319177

Dejte nám zpětnou vazbu

 

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