سؤال

لدي خدمة WCF ( دعنا نقول WCFService1 ) نشر على اثنين من الأجهزة عن بعد.منذ نفس الخدمة المنتشرة على جهازين مختلفين لديهم واجهة مشتركة و أساليب مشتركة المكشوفة.

WCFService1 يتم نشرها على Machine1 و Machine2.

تستهلك خدمة WCF من جهاز العميل, لقد خلق عميل التطبيق:

  1. لقد أضفت وقت التصميم المرجعي من خدمة WCF (WCFService1 )( مع مساعدة من URL http://11.12.25.23/WCFService/Service1.svc).

  2. الآن يمكنني استدعاء الأساليب المكشوفة في الخدمة.حتى الآن على ما يرام...

الآن سؤالي إذا يجب أن تحديث العميل في وقت التشغيل مع نفس الخدمة استضافتها في آلة مختلفة مع مختلف URL ( دعنا نقول http://12.12.24.24/WCFService/Service1.svc), كيف يمكن أن أفعل ذلك ؟

في الوقت الحاضر أنا أفعل هذا:

BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("http://12.12.24.24/WCFService/Service1.svc");
MyServiceClient serviceClient = new MyServiceClient(binding, address);

ولكن كلما استخدم استدعاء الأسلوب يتعرض في الخدمة لدي ملزمة mis المباراة خطأ.

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

المحلول

هل حاولت الاحتجاج العميل الخاص بك أولا ؟

على سبيل المثال:

MyWCFClient client = new MyWCFClient();
client.EndPoint.Address = new EndpointAddress("http://somewhere:888/here.svc");

نصائح أخرى

كنت تشك, أن إذا كنت تبحث في الويب الخاص بك.ملف التكوين على Machine1 ، سترى أن الربط هناك WSHttpBinding (أو شيئا مختلفا من BasicHttpBinding).إذا كنت تغييره إلى BasicHttpBinding (على افتراض أن هذا هو ما كنت حقا تريد) ، عليك إزالة هذا الخطأ.

كيف هو خدمة تكوين?تظهر لنا جانب الخادم و العميل التكوين!

ملزمة عدم تطابق ما يعني إما أنك لا تستخدم نفس ملزمة ، أو بعض الحيوية المعلمة على الربط مختلفة - يجب أن يكون هناك شيئا تكوين الخطأ - حتى تظهر لنا config!

مارك

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