ما الذي يجب أن أعرفه عند تطوير خدمة ويب WCF قابلة للتشغيل البيني؟
-
29-09-2019 - |
سؤال
أبدأ هذا الويكي لجمع أفضل الممارسات حول إنشاء خدمات ويب قابلة للتشغيل (وليس العملاء) في 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 ليست قابلة للتشغيل البيني
لا تنتمي إلى StackOverflow