مهلة خدمات WCF
-
04-07-2019 - |
سؤال
كيف مهلة العمل في WCF ؟ أنا أعرف على سبيل المثال يمكنك تكوين sendTimeout و receiveTimeout بالنسبة للعملاء ملزمة.لكن كيف تعمل ؟
MSDN يصف sendTimeout كما:
فترة زمنية القيمة التي تحدد فترة تقديم إرسال العملية كاملة.يجب أن تكون هذه القيمة أكبر من أو يساوي إلى الصفر.الافتراضي هو 00:01:00.
ما هي عمليات إرسال/تلقي العمليات ؟
المحلول
العميل:
- SendTimeout يستخدم لتهيئة OperationTimeout الذي يحكم كل التفاعل إرسال رسالة (بما في ذلك تلقي رسالة رد في طلب الرد الحالة).مهلة هذا ينطبق أيضا عند إرسال رسائل الرد من CallbackContract الأسلوب.
- OpenTimeout و CloseTimeout تستخدم عند فتح وإغلاق قنوات (عندما لا يوجد صريحة مهلة يتم تمرير قيمة).
- ReceiveTimeout لا تستخدم.
من جانب الملقم:
- إرسال فتح وإغلاق مهلة نفسه على العميل (على الاسترجاعات).
- ReceiveTimeout يستخدم من قبل ServiceFramework طبقة تهيئة الدورة-مهلة الخمول.
المصدر براين مكنمارا على منتديات MSDN.
نصائح أخرى
انظر "مهلة في WCF و قيمها الافتراضية" http://blogs.msdn.com/b/hongmeig/archive/2010/03/06/timeouts-in-wcf-and-their-default-values.aspx
مهلة ملزمة-SendTimeout, ReceiveTimeout, OpenTimeout و CloseTimeout.يمكن تعيين بسهولة إما عن طريق التكوين أو قانون ملزم.القيمة الافتراضية تلك هي 1 دقيقة.
ServiceHost وقد OpenTimeout و CloseTimeout.الافتراضي OpenTimeout 1 دقيقة ، الافتراضي CloseTimeout هو 10 ثانية.
مهلة على جانب العميل القناة.هناك OperationTimeout ، يمكنك تعيين ذلك قبل الصب القناة IContextChannel.الافتراضي هذا هو أيضا 1 دقيقة.Ttimeout على النقل tcp ، ودعا ChannelInitializationTimeout و القيمة الافتراضية هي 5 ثوان.
ASPNET.هناك اغلاق مهلة مثل خدمة المضيف قريب مهلة, default 90 ثانية.ExecutionTimeout ، عملية مهلة ، الافتراضي هو 110 ثانية.
وبالإضافة إلى ما كان في هذا المنصب، وهناك أيضا مهلة عملية محددة في نهاية العميل. الاطلاع على: