اعتراض الرسائل في صندوق رأس المال العامل العميل

StackOverflow https://stackoverflow.com/questions/1217374

  •  10-07-2019
  •  | 
  •  

سؤال

أي شخص لديه أي خبرة مع ملحقات خدمة ويب?قضيت الوقت في محاولة لجعل ملحق خدمة ويب من MS الأمثلة.

لدي .net framework 3.5 خدمة ويب العميل بنيت بإضافة إشارة إلى WSDL عبر VS IDE مشروع "> إضافة الخدمة المرجعية".هذا بنيت لي خدمة ويب العميل و كل يعمل على ما يرام.

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

لقد استعملت MS سبيل المثال من هنا "كيفية تنفيذ الصابون التمديد" ( http://msdn.microsoft.com/en-us/library/7w06t139.aspx) الذي يبني المسجل على طلب / الاستجابة تيارات.

ذات الصلة MS المادة "رسالة Soap التعديل" (http://msdn.microsoft.com/en-us/library/esw638yk(مقابل.85).aspx) يظهر كيفية تمكين الصابون ملحق عميل ويب:

تنفيذ امتداد الصابون

هناك طريقتان لتشغيل الصابون تمديد إما عميل أو ملقم التطبيق.أولا, يمكنك تكوين التطبيق لتشغيل التمديد.لتكوين الصابون الخاص امتداد لتشغيل جميع أساليب ويب على جميع خدمات الويب, خصوصا vroot, تحرير <soapExtensionTypes> عنصر القسم داخل شبكة الإنترنت.ملف التكوين.يظهر التعليمات البرمجية التالي هذا النوع قيمة السمة يجب أن تكون على سطر واحد و تشمل اسم مؤهل بشكل كامل من التمديد ، بالإضافة إلى إصدار والثقافة العامة مفتاح رمز وقعت الجمعية.

<configuration>
<system.web>
<webServices>
<soapExtensionTypes>
<add type="Contoso.MySoapExtension, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" priority="1" group="0" />
</soapExtensionTypes>
</webServices>
</system.web>
</configuration>

لقد جمعت traceextension في فئتها الخاصة المكتبة المشار إليها في شبكة الإنترنت.التكوين من خدمة ويب المشروع مثل ذلك:

<add type="TraceExtension, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ef8757fac167b8d8" priority="1" group="High" />

أي فرح.لا يتم تسجيل أي نقاط هي ضرب.

ثم إزالة المشار إليها الطبقة ، و انخفض شفرة المصدر في المشروع خدمة ويب.

حاولت إضافة إشارة إلى مثل ذلك (بلدي مساحة ServcieTest001):

<add type="ServiceTest001.TraceExtension" group="High" priority="1" />

لقد استخدمت الصفحات التالية كدليل على تمكيني من امتداد "الحصول على الخام-الصابون-البيانات-من-على-شبكة-المرجعية-العميل-على التوالي-في-asp-net" (http://stackoverflow.com/questions/300674/getting-raw-soap-data-from-a-web-reference-client-running-in-asp-net).

لا يوجد الفرح.ثم نسخ رمز من فوق خيط لا تزال لا يمكن الحصول على امتداد النار عندما جعل الصابون الطلب.

أي شخص يمكن أن تشير لي إلى أداء للتحميل ملحق خدمة ويب المشروع التجريبي لذا يمكن تفكيك والعمل بها ما أنا في عداد المفقودين ؟

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

المحلول

جون هو الحق, هل يمكن اعتراض الرسائل على العميل باستخدام مخصص العميل السلوك التي تطبق IClientMessageInspector.انظر كيفية:فحص أو تعديل الرسائل على العميل على MSDN.

الشيء الوحيد 'صعبة' عن ذلك هو أنه إذا كنت تخطط لتعديل الرسالة الجسم ثم سوف تحتاج إلى إنشاء نسخة من الرسالة الأصلية الأولى.انظر باستخدام فئة الرسالة بالنسبة لزج التفاصيل.

نصائح أخرى

وهناك احتمالات كنت ترغب في الحصول على بعض الراحة.

كنت لا تريد من أي وقت مضى استخدام WSE.WSE عفا عليه الزمن.

كنت لا تريد أن تكون باستخدام ASMX خدمات ويب مايكروسوفت الآن واعتبر أنها "إرث" التكنولوجيا ، ولن يتم إصلاح الخلل.راجع للشغل, WSE على أساس ASMX, فما الذي جعل ذلك ؟


أنت فقط تريد أن تعمل مع نظام التشغيل Windows Communication Foundation.WCF مركز تطوير على MSDN هو في http://msdn.microsoft.com/wcf/.

المتعة والابتعاد عن سيئة قديمة الأشياء.

نعم لقد كان متعبا جدا.

أنا أعتقد ملحقات خدمة ويب العمل مع "المراجع ويب" (.صافي 2) ليس "جيدا" (.صافي 3).

لذا أعتقد أن يغير سؤالي كيف يمكنني اعتراض على طلب الاستجابة للطوارئ .صافي 3 "الخدمة المرجعية" اتصال ويب القديمة ؟

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