سؤال

هل هناك ما يعادل .NET من servlet تهيئة Java؟

بينما نحن في ذلك ، ما يعادل مرشح؟

وأخيرًا إذا كان هناك شيء قول موجود (المرشحات) ، فهل يمكن تشغيل هذه قبل/بعد تقديم طلب لخدمة WCF؟

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

المحلول

على الرغم من أنه يمكنك استخدام حدث ONSTART لـ HTTPAPPLICATION لاعتراضه عند بدء الخدمة بالإضافة إلى IHTTPMODULE لاعتراض الطلبات, ، هو ليس الطريقة الصحيحة لأداء هذه الاعتراضات في WCF.

السبب الوحيد الذي يجعل التوصية يعمل هو أنك يتم استضافتك في IIS واستخدام السنانير الخاصة بـ IIS. ومع ذلك ، يمكن استضافة خدمات WCF في أي مكان ، وقد تجد أنك تنقل خدمتك إلى عملية خدمة ، بالإضافة إلى تغيير الروابط (يمكنك استخدام Net-TCP بدلاً من HTTP ، على سبيل المثال ، في هذه الحالة ، كيف يمكنك اقرأ المحتوى القادم من خلال تنفيذ IHTTPModule؟ لا يمكنك) الأمر الذي سيؤدي إلى كسر هذه السنانير.

ومع ذلك ، من الأفضل أن تؤدي أي نوع من التهيئة قبل أن تنشئ ServiceHost نموذج. ومع ذلك ، نظرًا لأنه لا يمكنك الوصول إلى مثيل ServiceHost في WCF في IIS ، فسيتعين عليك تنفيذ العرف ServiceHostFactory و حدد هذا المصنع في ملف SVC الخاص بك (انظر القسم الذي يحمل عنوان Servicehost المخصص في IIS أو كان). اتخاذ هذا النهج سيجعله محمول.

بالنسبة لاعتراض المكالمات ، يمكنك القيام بذلك على العميل وعلى جانب الخدمة. على جانب العميل ، ستنفذ iClientMessageInspector وعلى جانب الخادم الذي تريده idispatchmessageinspector (أفترض أنك تريد الأخير).

من أجل "حقن" هذا المفتش على جانب الخدمة ، يجب عليك استخدام سلوك نقطة النهاية (والذي ينطبق على نقطة نهاية محددة على الخدمة ، وتنفيذ iendpointbehavior) أو سلوك الخدمة (الذي ينطبق على جميع نقاط النهاية على الخدمة ، من خلال تنفيذ iservicebehavior واجهة).

من خلال تلك التطبيقات التي ستنظر إليها ServiceNdPoint (لسلوكيات نقطة النهاية) أو وصف الخدمة الفصل لتطبيق تنفيذ المفتش الخاص بك ، أو أي واحد من السنانير الأخرى المتاحة في WCF.

يمكنك القراءة باولو بيالورسي "كتابة مفتش رسالة WCF" للحصول على تجول كامل في كيفية تجميع هذا معًا ويعطيك نظرة ثاقبة على سلوكيات مخصصة في WCF.

نصائح أخرى

حسنًا ، لا أعرف أطر عمل Java ، لكن من أصواتها قد تبحث عن Global.asax HttpApplication.Application_OnStart حدث للتهيئة.

والمرشحات؟ محاولة IHttpModule.

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