سؤال

لدينا اثنين من خوادم شبكة الإنترنت باستخدام موازن التحميل. وآلات تشغيل IIS6 على المنفذ 81. خارجيا، الموقع هو الوصول إليها باستخدام المنفذ 80. اسم الخارجي واسم آلة مختلفة.

ولقد حصلنا على

System.ServiceModel.EndpointNotFoundException: The message with To '<url>' cannot be processed at the receiver, due to an AddressFilter mismatch at the EndpointDispatcher. Check that the sender and receiver's EndpointAddresses agree.

والجزء ذو الصلة من الملف web.config هو:

  <endpoint binding="ws2007HttpBinding" bindingConfiguration="MyServiceBinding"
    contract="MyService.IMyService" listenUriMode="Explicit" />

ولقد حاولنا مضيفا listenUri، ولكن هذا لم يحل مشاكلنا.

وأي أفكار؟

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

المحلول

[ServiceBehavior(AddressFilterMode=AddressFilterMode.Any)]

ووضع هذه السمة على خدمة حل المشكلة.

نصائح أخرى

ما هو موازن التحميل محددة؟ باستخدام F5 BIG-IP حصلنا على العمل بسهولة إلى حد ما، ولكن كنا باستخدام نفس المنفذ و(النسبي) اوري على NLB كما الآلات الفردية (حتى نتمكن من علاج آلة الفردية نفس المزرعة إذا اخترنا). ومن الواضح أن كل جهاز له اسم مختلف، ولكن هذا الإعداد يسمح لك أيضا لاختبار الخوادم الفردية عن طريق خداع المضيف - على سبيل المثال، عن طريق تحرير ملف المضيفات أن نشير [اسم المزارع الخاصة بك] إلى [خادم اختبار IP]

.

وكان أكبر ألم كان لدينا SSL. استخدام الأمان TransportWithMessageCredential، WCF ترفض اتصالات HTTP الداخل - لذلك كان علينا أن إعداد NLB لإعادة تشفير بين NLB وعقدة خادم - ولكن ليس بيغي

والقضية الوحيدة الأخرى كان لدينا مع استضافة WCF داخل IIS، وWCF عدم القدرة على تحديد الموقع يهدف بشكل صحيح (على الرغم من IIS على ما يرام) عبر HTTP (ولكن الغرامة عبر HTTPS). لإصلاح هذه كتبت مصنع مخصص ببساطة تجاهل HTTP تماما (استمع فقط على HTTPS) - الذي يربط في بدقة مع متطلبات TransportWithMessageCredential على أي حال، لذلك لم أكن منزعجا من هذا

.

وأنا أتساءل عما إذا كنت لا تحصل على المزيد من الفرح من خلال استضافة على منفذ القياسية ولكن كموقع مختلفة (IP / المضيف رأس / الخ).

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