2010-03-18 21 views
12

Şu anda bir kaç işleminde bilgi göndermek için başka bir servise ulaşan bir WCF servisi üzerinde çalışıyorum. İkinci hizmetin proxy'si, güçlü yazılan ProxyFactory<T> sınıfı aracılığıyla oluşturulur. Ben herhangi bir sorun yaşamadım ama böyle bir şey yapmak gerektiğini duymuş arama yaparken aşağıdaki:WCF hizmetinin içinde OperationContextScope'u ne zaman kullanmalıyım?

using (new OperationContextScope((IContextChannel)_service)) 
    _service.Send(message); 

Benim soru yani: Bu yeni OperationContextScope uygun oluşturarak, ve neden?

Teşekkürler!

cevap

14

Geri aramalar kullanıyorsanız veya iletiyi veya başlıklarda değişiklik yapmak istiyorsanız, OperationContextScope'u kullanmanız gerekir. Başka bir servisi ararken servisinizin giden başlıkları değiştirmesi gerekebilir.

sonra OperationContextScope kurmak zaman şunları yapabilirsiniz:

  1. Erişim ve gelen ve giden mesaj başlıkları ve diğer özelliklerini değiştirmek.
  2. Görev dağıtıcılar, ana makine, kanal ve uzantılar dahil çalışma zamanına erişin.
  3. Güvenlik, örnek ve istek bağlamları gibi diğer içerik türlerine erişin.
  4. OperationContext nesnesiyle ilişkili kanala veya (kanal System.ServiceModel.Channels.ISession uygularsa) ilgili kanalın oturum tanımlayıcısını kullanın.

Aradığınız diğer servis, oturum tabanlı bir hizmet midir? Muhtemelen örnek müşteri koduna veya varsa belgelere bakmanız gerekir.

+0

Gotcha. Yani her zaman oturum bilgisi, güvenlik vb. Üzerinde daha ayrıntılı kontrol istiyorum. Ayrı bir 'OperationContextScope 'kurmalıyım. Diğer servis oturum tabanlı, evet. –

İlgili konular