ما الذي يجب أن أعرفه عند تطوير خدمة ويب WCF قابلة للتشغيل البيني؟

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

سؤال

أبدأ هذا الويكي لجمع أفضل الممارسات حول إنشاء خدمات ويب قابلة للتشغيل (وليس العملاء) في WCF. يرجى مشاركة تجربتك إذا كنت تعرف أي ميزة غير قابلة للتشغيل عمومًا أو غير قابلة للتشغيل البيني مع منصة محددة.

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

المحلول

بسيطة الى حد كبير:

  • تجنب أي تفاصيل .NET مثل الاستثناءات (حولها إلى أخطاء الصابون)

  • لا تستخدم أي ارتباط يبدأ بـ net مثل nettcp و netnamedpipes و netmsmq وما إلى ذلك - الاستخدام wsHttpBinding لخدمات WS-* الآمنة ، و basicHttpBinding للحصول على أقصى قدر من الوصول / التوافق مع حتى أغرب منصات العميل

  • لا تستخدم NetDatacontractSerializer

نصائح أخرى

أوصي WCF REST بفضح تنسيقات تسلسل متعددة ، بالتأكيد XML للمبتدئين.

قابلية التشغيل البيني العام:

  • فقط قنوات نقل HTTP و HTTPS قابلة للتشغيل البيني
  • التفاوض على بيانات الاعتماد الأمنية غير قابلة للتشغيل (CovioAseServiceCredential في أمن الرسائل). يستخدم بروتوكولات TLSNEGO أو Spnego التي لا تدعمها دائمًا منصات أخرى.
  • يمكن أن يسبب تدفق HTTP مشاكل أيضًا
  • الترميز الثنائي عبر قناة HTTP غير قابل للتشغيل البيني
  • المعاملات غير قابلة للتشغيل البيني
  • استخدم سياق أمان الخدمة بعناية (EstabilishSecurityContext في أمان الرسائل). يستخدم بروتوكول محادثة WS-Secure غير متوفر على بعض المنصات

يحرر:

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