سؤال

كنت أحصل على "عميل رائع" العثور على نوع محتوى استجابة "نص / HTML" ولكنه من المتوقع خطأ "اختبار / XML" المتوقع، ولكن بعد بعض googling وجدت هذا المنشور حول كيفية إرجاع SoapException.

لذلك ذهبت إلى الأمام ونفذت ذلك، ولكن الآن ما زلت أحصل على نفس الخطأ. هل هناك تغييرات أحتاج إليها على جانب العميل لتكون قادرة على قبول soapexception (لن أظن أن كل شيء يرث فقط من الاستثناء، أليس كذلك؟)

لماذا ما زلت أحصل على الاستجابة اللعين على جانب العميل؟

giveacodicetagpre.

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

Edit2: أنا أقوم بالاتصال بشبكة الإنترنت عبر الإرصاح (استدعاء ملف * .ASMX) إذا كان ذلك يساعد / مسائل.

Edit3: إليك ما هو مكتوب إلى جانب خادم ExceptionLog الخاص بنا (في نداء PublishingManager.Publish ()). كان فكرتي أن هذا يجب أن يكون ما يتم إرجاعه إلى العميل ...

giveacodicetagpre.

Edit3: فقط أريد رمي هذا الرمز الإضافي، لذلك يرى الناس كيف يمكنني اختبار هذه الاستثناءات (وربما هي الطريقة الخاطئة لاختبار ...). في قطع التعليمات البرمجية الأولى، لدي مكالمة داخل كتلة المحاولة إلى "Return Components.pwd.getconversionErrors ()؛"، إليك هذه الطريقة:

giveacodicetagpre.

كما ترون، لقد علقت على المكالمة الفعلية، وألقيت فقط في خطي الخاص التي ستخبط استثناء في كل مرة لأغراض الاختبار ...

Edit4: gbvb هنا الطريقة الجديدة:

giveacodicetagpre.

Edit5: ما المنشار fiddler2:

giveacodicetagpre.

إذا كان أي شخص يعرف بتنسيق هذا القسم بشكل جيد، فالرجاء القيام به :)

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

المحلول

لذلك، حصلت عليه للعمل.إليك ما اكتشفته:

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

الإصلاح إما إما بإزالة هذا الإدخال "customerrormodule"، أو تحديث ملف التكوين الخاص بي من:

giveacodicetagpre.

إلى:

giveacodicetagpre.

شكرا للجميع على المساعدة، فقد قادني في الاتجاه الصحيح.(راجع للشغل، أنا أقوم بتحديث ملف التكوين حتى لا أضطر إلى الفوضى مع الاشياء الوحدة النمطية)

أيضا، هنا رابط شرح هذا الموقف.

نصائح أخرى

فقط للضحكات، هل يمكنك تجربة رمي SOAPException جديد () مع SoApException.clientFaultcode كأن النوع من تلك المكالمة؟من الواضح أن لديك عدة طبقات يمكن أن تفشل في الكود الذي تظهر عليه أعلاه وهو سهل الفوضى (صدقني، أعرف :)).ولا استدعاء الأساليب الأخرى مثل Publisher.publish .. من شأنها أن تشير إلى ما إذا كان إعلان الرسائل (I.E. asmx البنية التحتية) أو هل هو رمز العبث باستثناء ..

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