Düzeltme: yeni bir servis verilen bileşen oluşturduğunuzda CallContext nesneleri kaybolur.

ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.

Makalenin İngilizcesi aşağıdaki gibidir:319177
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Belirtiler
Nesne kopyasını oluşturduktan sonra bir istemci uygulamasında, bir servis verilen bileşeninin bir örneğini oluşturmadan önce CallContext nesneleri ayarlarsanız CallContext nesneleri kaybedebilirsiniz.
Neden
Bu sorun CallContext yerleştirdiğiniz nesneleri ILogicalThreadAffinative arabirimden türetme yapıp yapmayacağınızı ortaya çıkar. (CallContext.SetData yöntemini kullanarak), bu nesneler CallContext yerleştirin ve ardından bir ServicedComponent nesnesi örneğini oluşturmanız, Borç ve Alacak bakiyesi söz konusu nesneleri için CallContext.GetData yöntemi null döndürür.
Çözüm
Bu sorunu gidermek için <a0></a0>, Microsoft .NET Framework için en son hizmet paketini edinin. Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
318836BILGI: en son .NET Framework hizmet paketi nasıl elde edilir

Geçici Çözüm

Bu soruna geçici bir çözüm için aşağıdaki yöntemlerden birini kullanın:
  • Yalnızca CallContext öğeleri yerel olarak, uygulamanızı kullanmak istiyorsanız, bu öğeler ILogicalThreadAffinative türetmek değil.

    Not: uzak sistem, uygulama etki alanları bu nesneleri vermeyen.
  • Içinde CallContext maddelerini yerleştirmeden önce ServicedComponent nesneleriyle uzak sunucularda kullanmak istiyorsanız ve CallContext kendisine akıtmak isterseniz, sizin bir ServicedComponent nesnesi örneğini oluşturmanız gerekir.

    Bu denetim altına alamıyor, ServicedComponent ve içeriği geri sonra yük örneğini oluşturmadan önce içeriğini CallContext saklayabilirsiniz.
Not: CallContext özellikten ServicedComponent uygulamalarda alınamıyor. Microsoft, ServicedComponent nesnelerin CallContext kullanımını desteklemez.
Durum
Microsoft, bu makalenin başında listelenen Microsoft ürünlerinde bir sorun olduğunu onaylamıştır. Bu sorun, ilk olarak Microsoft .NET'te düzeltilmiştir Framework Service Pack 2 (SP2).
Daha fazla bilgi
CallContext nesnesiyle, istemciden sunucuya veya tam tersi kanal boyunca bilgi gönderebilirsiniz. CallContext yürütme kod yolu (çağrı zincir) ile birlikte taşınan bir özellikler kümesi sağlar.

Bu sorun ayrıca CallContext nesnesindeki tüm üstbilgileri oluşur.

Sorunu Yeniden Oluşturma Adımları

  1. Içinde CallContext yerleştirmek için bir sınıfın örneği tanımlayın:
    [Serializable]public class CtxObject : ILogicalThreadAffinative{	public string CtxString;	public CtxObject(){CtxString = "Some String" ;}}					
  2. Bu nesnelerden birini CallContext veri yuvasına yerleştirin ve sonra bir ServicedComponent örneğini oluştur:
    // 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") ;  					
başlatılamadı

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 319177 - Son İnceleme: 01/17/2015 16:37:01 - Düzeltme: 3.3

Microsoft .NET Framework Class Libraries 1.0, Microsoft Visual Studio .NET 2002 Professional Edition, Microsoft Enterprise Services (included with the .NET Framework) 1.0

  • kbnosurvey kbarchive kbmt kbvs2002sp1sweep kbbug kbfix kbnetframe100sp2fix kbremoting KB319177 KbMttr
Geri bildirim