سؤال

لنفترض أن لدي تطبيق WCF بسيط يتصل به العميل من أجل الحصول على رقم. لا يوجد الكثير من المعالجة فيه ويعزى عقد الخدمة على أنه SessionMode = SessionMode.Notally.

متى يتم استدعاء المنشئ؟ متى يتم تدمير الكائن؟ هل يسمى مُنشئ لكل طلب؟

هل هناك أي مستندات أو موارد مرجعية لديها هذه المعلومات؟ أنا غير قادر على العثور على ما يبدو عليه.

هل كانت مفيدة؟

المحلول

يتم استضافة WCF بواسطة IIS ، وبالتالي تخضع لقواعد حياتها. من المحتمل أن يتم إنشاء فئة الخدمة ، في حد ذاتها ، حسب الضرورة في التطبيق ؛ سيتم بناء الفصل عند استلام طلب ، والطريقة المسمى ، والنتيجة التي تم إرجاعها ، وبعد ذلك سيترك الكائن النطاق ويتم التخلص منه/الانتهاء منه.

ومع ذلك ، فإن المشروع الذي يحتوي على خدمتك يبدو وكأنه تطبيق ويب activeServer.net عادي إلى IIS (راجع ملف Global.asax الذي يجب أن يكون فيه ؛ إنه يحتوي يمكن استخدامه للسيطرة عليه) ، وسيحافظ IIS على "تجمع" من هذه التطبيقات للتعامل مع الطلبات من العديد من العملاء. طالما استمرت الطلبات في الدخول ، ولا تقرر IIS أن التطبيق قد أصبح "لا معنى له" ويقوم بتحديثه أو تجمع كامل ، فسيستمر تشغيل التطبيق. لذلك ، أي فئات ثابتة تعلن ، على سبيل المثال ، سيبقى حاوية IOC الخاصة بك ، أو أي شيء تضيفه إلى فئة httpapplication المشتقة التي تستخدمها كنوع طفلك ، في الذاكرة حتى يتم إعادة تدوير التطبيق.

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