سؤال

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

بدأت هذه المشكلات تحدث بمجرد أن أتحول إلى استخدام هذا wsDualHttpBinding (للاسترجاعات) لأنني عندما استخدمت wsHttpBinding كل شيء يعمل بشكل جيد.

لماذا لا تقبل خدمة الويب طلبات من أجهزة الكمبيوتر الأخرى؟ هل هي بعض إعدادات الاستضافة التي تحتاج إلى تعديل؟


فيما يتعلق بالسجلات ، أحصل على هذه:

alt text http://img17.imageshack.us/img17/4628/wcfissue.jpg

لم تكتمل العملية المفتوحة ضمن المهلة المخصصة لـ 00:01:00. قد يكون الوقت المخصص لهذه العملية جزءًا من مهلة أطول

فشل في فتح system.servicemodel.channels.clientreliablePlexsessionchannel

shereed system.ServicEmodel.Channels.ClientReliablePlexsessionchannel

shere system.ServicEmodel.Channels.Servicechannel

فشل في فتح system.servicemodel.channels.Servicechannel


المنفذ مفتوح على جهاز التوجيه الخاص بي (كل من TCP و UDP) بحيث لا تكون هذه هي المشكلة.

فيما يتعلق بسمات الخدمة ، هذا ما أستخدمه:

واجهه المستخدم:

[ServiceContract(Name = "MusicRepo_DBAccess_Service", 
                 CallbackContract = typeof(IOnlineUsersCallback),
                 SessionMode=SessionMode.Required)]

خدمة:

[ServiceBehavior(
        ConcurrencyMode=ConcurrencyMode.Reentrant, 
        InstanceContextMode=InstanceContextMode.Single)]

تحديث

كتحية أوريون إدواردز' بريد:

  • لا جدار الحماية
  • انظر النقطة 1
  • نعم أستطيع ، لأن لدي المنفذ على جهاز التوجيه الخاص بي
  • أنا أستخدم IIS لاستضافة الخادم.

الشيء هو أن هذه المشكلة بدأت تحدث عندما تحولت من wsHttpBinding (الذي كان يعمل بشكل جيد) ل wsDualHttpBinding (لأنني كنت بحاجة إلى عمليات الاسترجاعات)


تحديث

لقد تحولت الآن من wsDualHttpBinding إلى NetTcpBinding ولسبب ما ، كل شيء يعمل بشكل جيد.

لقد استخدمت هذه المقالة لمساعدتي في إعداد الاستضافة على IIS ، وشكر كل شيء يعمل كما هو متوقع ، مع عمليات الاسترجاعات.

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

المحلول

لقد تحولت الآن من wsDualHttpBinding إلى NetTcpBinding ولسبب ما ، كل شيء يعمل بشكل جيد.

لقد استخدمت هذه المقالة لمساعدتي في إعداد الاستضافة على IIS ، وشكر كل شيء يعمل كما هو متوقع ، مع عمليات الاسترجاعات.

نصائح أخرى

سيساعد ذلك إذا قمت بنشر إعدادات تكوين الخادم والعميل.

إليك ملخص لكيفية عمل WSDualHTTPBINDING MSDN (أكد لي):

يوفر WSDUALHTTPBINDING نفس الدعم لبروتوكولات خدمة الويب مثل WSHTTPBING ، ولكن للاستخدام مع العقود المزدوجة. يدعم WSDualHttpBinding فقط أمان الصابون ويتطلب رسائل موثوقة. يتطلب هذا الربط أن يكون لدى العميل URI عام يوفر نقطة نهاية رد الاتصال للخدمة. يتم توفير هذا من خلال سمة ClientBaseadDress. يعرض الربط المزدوج عنوان IP للعميل للخدمة. يجب على العميل استخدام الأمان للتأكد من أنه يتصل بالخدمات التي يثق بها فقط.

يمكن استخدام هذا الربط للتواصل بشكل موثوق من خلال واحد أو أكثر من وسطاء الصابون.

بشكل افتراضي ، يقوم هذا الربط بإنشاء مكدس وقت التشغيل مع WS-ReliaBraysage للموثوقية ، و WS-Security لأمان الرسائل والمصادقة ، و HTTP لتسليم الرسائل ، وترميز رسالة نص/XML.

أشياء للتحقق:

  • جدار الحماية Windows
  • جدار الحماية الخاص بمنتج مكافحة الفيروسات
  • هل يمكنك telnet في المنفذ من جهاز بعيد؟
  • هل يعمل "الخادم" الخاص بك تحت خادم تطوير ASP.NET؟ لن يقبل ذلك سوى طلبات من المضايسات المحلية - تحتاج إلى استضافة الخادم ذاتيًا باستخدام ServiceHost أو استضافها تحت IIS.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top