İstemci kimliğinin kendisi için bunu koymak için iki yer önerebilirim. Biri OperationContext.Current.IncomingMessageProperties
. Başka bir mantıksal işlem tanımlamanıza olanak veren CorrelationManager.StartLogicalOperation
olup, bu hizmet isteği, baştan sona - veya birden çok işlem olabilir - ve her işlem için benzersiz bir kimlik alır.
System.Diagnostics
ürününün bir parçası olduğu için System.ServiceModel
bağımlılıklarını önleyebilirim. (CorrelationManager
adı, yapmaya çalıştığınız şeyi bile tanımlar.)
Her iki durumda da araya girmeye bakardım. Bu, her bir yöntemi günlüğe kaydetme ve istemci kimlikleri bilgisi ile kirletmek zorunda kalmadan değeri (depoladığınız her yerde) okumak için ideal bir yoldur. (İletinizden, istemci kimliklerine doğrudan bağımlılıktan kaçınmaya çalıştığınızı gördüm.)
WCF hizmetinize Windsor eklemeye ilişkin bazı documentation. (Bir noktada, blogumda bazı uçtan uca belgeler ekleyeceğim.) Daha sonra, hizmetlerinizi somutlaştırmak için Windsor'u kullandığınızda, bağımlılıkları oluşturmak ve gerçekleştirecekleri etrafa interceptors koymak için de kullanabilirsiniz. Bu bağımlılıklardan önce veya sonra giriş yapmak onların işlerini yapar. Bu engelleyiciler içinde mantıksal işlemlerin yığına erişebilir veya bunları değiştirebilirsiniz.
Birkaç adama atlayarak Windsor adaletini yapmıyorum. Bazı blog gönderileriyle buluşturmak istiyorum. Ama bakmayı tavsiye ederim. Bir çok sebepten dolayı faydalıdır - Hizmetleri ve bağımlılıkları oluşturma şeklimize yardımcı olur.
Güncelleştirme - Bir blog post ekledim - Windsor'u bir WCF hizmetine beş dakikada nasıl ekleyebilirim.
Yapabileceğine eminim, ama yapmamalısınız - [REST uygulamaları vatansız olmalıysa, oturumları nasıl yönetiyorsunuz?] (Http://stackoverflow.com/questions/3105296/if-rest -uygulamalar-sözde-ol-vatansız-nasıl-yapmak-yönetmek-oturumları) – stuartd
Tek bir istek veya birden fazla ilgili istekleri için bir kimlik mi arıyorsunuz? Eğer eski ise o zaman bu hala "vatansız" - sadece bu talepte gerçekleştirilen etkinlikleri ilişkilendiriyorsunuz. –
Tek bir istek arıyorum, çağrı bir clientID ile gelecek ve bu değere, erişilecek her yöntem çağrısına bir bağımlılık yapmak zorunda kalmadan, o çağrı boyunca taşımak istiyorum. – mahlatse