سؤال

لديّ تزامن يستخدم منفذ استجابة الطلب للاتصال بخدمة ويب وانتظر استجابة. هذا يعمل تماما.

أقوم الآن بإجراء اختبارات للتعامل مع الأخطاء وأنا أتصل بخدمة ويب تلقي قسمة على Zero Exception. التزامن لا يجذب الاستثناء كاستثناء ؛ إنه يتصرف كما لو أن خطأ الصابون الذي أعود إليه هو سلسلة منتظمة.

ومع ذلك ، عندما اختبرت هذا السلوك بمنفذ طلب فقط ، انتهى بي الأمر داخل كتلة الصيد من التزامن مع الفجوة على استثناء صفر. أحتاج إلى التقاط استثناء خدمة الويب أيضًا في منافذ استجابة الطلب وليس فقط في منفذ الاتجاه الواحد.

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

المحلول

هذا النوع من الأخطاء التي تراها هو أن هناك مشكلة في استجابة HTTP القادمة من خدمة الويب. يحاول BizTalk تحليل الاستجابة المستلمة وقطعها إلى رأس وجسم ثم تحليل الرأس. إذا كانت الاستجابة مشوهة HTTP ، فإنها تسبب هذا النوع من الخطأ. إنه يستخدم مكتبة SOAP لتفسير رسالة الاستجابة وتفجر لأن الرسالة سيئة. قد تحدث الفجوة على الصفر لأنها لم تتمكن بدقة من الحصول على طول الاستجابة من الرأس ثم قام بتفريغ بعض الرياضيات.

أود أن أضع حزمة sniffer على الخط (مثل netmon) وأرى ما الذي يتم إرساله بالفعل إلى biztalk. إذا لم تكن متوافقة مع HTTP (تصفح المواصفات أو ابحث عن HTTP جيد للدمى) ، يمكن أن يتفاعل BizTalk بشكل متوقع.

حظا سعيدا.

نصائح أخرى

يجب أن تلعب بالقواعد أولاً!

من أجل التقاط استثناء في كتلة نطاقك في BizTalk أثناء استخدام منفذ الاستجابة للطلب ، قد تضطر إلى القيام بما يلي ...

  1. قم بتعيين إعادة المحاولة إلى 0 على منفذ استجابة الطلب المادي الذي تستخدمه لربطه.
  2. قم بتمكين إشعار تسليم العلم إلى "إرسال" على منفذ الاستجابة المنطقية للطلب داخل التزامن.
  3. انتقل إلى "system.web.services.protocols.soapexception" استثناء والتعامل معه على أنه من فضلك.

أتمنى أن يساعدك هذا.

المراجع: إلقاء نظرة على مقالتي في مشروع الرمزمشروع الرمز

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