سؤال

تحديث 3:
أنا خلقت Visual Studio 2008 مشروع اختبار وحاول إنشاء خدمة مرجعية مشتركة الموقع خدمة WCF الإشارة وحصل الخطأ التالية:

كان هناك خطأ أثناء تحميل 'http://apps.mydomain/MyService.svc'.فشل الطلب مع حالة HTTP 400:سيئة الطلب.البيانات الوصفية يحتوي على المرجعية التي لا يمكن حلها:'http://apps.mydomain/MyService.svc'.نوع محتوى التطبيق/الصابون+xml;charset=utf-8 كان لا يدعمها الخدمة http://apps.mydomain/MyService.svc'.العميل والخدمة الارتباطات قد يكون غير متطابقة.أرجع الملقم البعيد خطأ:(415) يمكن معالجة الرسالة لأن نوع المحتوى 'التطبيق/الصابون+xml;charset=utf-8' لم يكن من المتوقع نوع 'text/xml;charset=utf-8'..إذا كانت الخدمة المحددة في الحل الحالي ، في محاولة بناء الحل و إضافة الخدمة المرجعية مرة أخرى.

تحديث 2:
@نيك - حاولت اقتراح explictly وضع عنوان كل نقطة النهاية مع مسار مؤهل بشكل كامل من كل خادم وأنا لا يزال الحصول على نفس النتيجة.

أيضا, عند محاولة تعيين listenUri السمة مع تقاسم الموقع URL ، أحصل على 400 طلب غير صالح خطأ بدلا من الخطأ 404.

التحديث
بعد بعض البحوث الإضافية هناك بعض تكوين IIS وضع الصراعات بين http://apps1.mydomain و http://apps2.mydomain وكان قادرا على الحصول على الماضي "ملقم التطبيق غير متوفر" خطأ.

الآن أنا الحصول على 404 خطأ عندما حاولت أن استعرض إلى موقع مشترك (http://apps.mydomain), ولكن أنا قادرة على استعراض http://apps1.mydomain و http://apps2.mydomain الخدمة المرجعية.

المشكلة الأصلية

بلدي الشركة يستخدم مايكروسوفت NLB إلى تحميل موازنة حركة مرور بين ملقمات IIS.لقد انتشرت مؤخرا خدمة WCF على كل IIS 6 Windows Server 2003 Standard Edition SP1 الخوادم.تلقيت الخطأ التالي عندما حاولت تصفح المشتركة اسم المجال باستخدام IE 7:

تطبيق الملقم غير متوفر في تطبيق ويب الذي تحاول الوصول على ملقم ويب هذا حاليا غير متوفر.يرجى ضرب "تحديث" زر في متصفح الويب الخاص بك إلى إعادة المحاولة الطلب الخاص بك.

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

فإن المستهلك نقطة http://apps.mydomain لاستخدام الخدمة ولكن الظاهري المجال هو تعيين http://apps1.mydomain أو http://apps2.mydomain.إذا كنت تصفح الخدمة على كل خادم ، لا تتلقى هذا الخطأ.

الخدمة حاليا باستخدام مجهول basicHttpBinding.

وقد أي شخص آخر من ذوي الخبرة في هذه المسألة ؟

التاريخ

قبل هذا الخطأ بدأت تحدث ، تلقيت الخطأ التالي عندما broswed الثلاثة اسم المجال (http://apps.mydomain, http://apps1.mydomain, http://apps2.mydomain):

هذه المجموعة بالفعل يحتوي على عنوان المخطط http.لا يمكن أن يكون في معظم عنوان واحد لكل نظام في هذه المجموعة.

لقد استخدمت ServiceHostFactory فئة لتخصيص بلدي .الملف svc إلى تحديد مخصص خدمة المصنع.ثم إنشاء عادتنا مصنع وراثة من ServiceHostFactory الغالب كما هو مطلوب.

public class MyFactory : ServiceHostFactory
{
    protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
    {
        return new ServiceHost(serviceType, baseAddresses[0]);
    }
}

<%@ ServiceHost Language="C#" Factory="MyFactory" Debug="true" Service="MyService" CodeBehind="~/App_Code/MyService.cs" %>
هل كانت مفيدة؟

المحلول

بعد تجارب مع بعض تكوينات مختلفة أجل خدمة WCF والمستهلكة التطبيق.أنا خلقت خدمة إشارة إلى واحدة من العمل خدمة المراجع (http://apps1.mydomain أو http://apps2.mydomain) في استهلاك التطبيق.ثم غيرت نقطة النهاية الإشارة في تكوين العميل إلى النقطة المشتركة موقع WCF عنوان (http://apps.mydomain) و كنت قادرة على استهلاك واستخدام الخدمة.

نصائح أخرى

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

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