WCF: كيفية اكتشاف اتصالات جديدة بخدمات Bersession WCF؟

StackOverflow https://stackoverflow.com/questions/2442004

سؤال

لدي خدمة WCF المستضافة ذاتيا مع مجموعة InstanCecontextMode للبريد.
كيف يمكنني اكتشاف اتصالات عميل جديدة (جلسات) لخدمتي من تطبيق المضيف واستخدام سياق الجلسة الجديد لمراقبة خدمتي من خلال أحداثه؟

شيء مثل:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
public class MyService : IMyService {
    public event EventHandler ClientRegistered;
    public event EventHandler FileUploaded;
}

ومن تطبيق مضيفي ليكون قادرا على القيام به:

ServiceHost svc = new ServiceHost(typeof(MyService));
svc.Open();

// something like:
svc.NewSession += new EventHandler(...)

//...

public void SessionHandler(InstanceContext SessionContext) {
    MySessionHandler NewSessionHandler = new MySessionHandler(SessionContext);

    // From MySessionHandler I handle the service's events (FileUploaded, ClientRegistered) 
    // for this session and notify the UI of any changes.
    NewSessionHandler.Handle();
}
هل كانت مفيدة؟

المحلول

يمكنك استخدام ISInitiating في عقد الخدمة

[OperationContract(IsInitiating = true)]
   void FirstMethod();

انظر الرابط التالي:

http://social.msdn.microsoft.com/forums/en-us/wcf/Thread/8137553A-8657-475E-B9CA-5914D9C9CA-5914D9C9D57A.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top