WCF: كيفية اكتشاف اتصالات جديدة بخدمات Bersession WCF؟
-
19-09-2019 - |
سؤال
لدي خدمة 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();
انظر الرابط التالي:
لا تنتمي إلى StackOverflow