سؤال

الإعداد: Windows 7 ، IIS مثبتة وتشغيل.

الجزء التالي من الكود:

HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://server.com:8080/path");
listener.Start();

أعمال مثل Charm - يتم استلام أي طلب ضد الخادم في الكود الخاص بي.

ومع ذلك ، عندما أقوم بإجراء التغيير التالي (الانتقال إلى المنفذ 80) http.sys/IIS (غير متأكد من) إرجاع أخطاء HTTP 503:

listener.Prefixes.Add("http://server.com:80/path");

لقد حاولت تعيين urlacls ، وتشغيل هذه العملية كمسؤول ، وما إلى ذلك ، ولكن لا شيء يغير هذا السلوك.

تحرير: لمسح ذلك - لا يوجد شبكات فعلية تشارك في هذه الفوضى. يتم كل هذا محليًا على جهاز واحد ، لأغراض الاختبار (كل من الخادم والعميل).

أيه أفكار؟

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

المحلول

حسنًا ، لست متأكدًا من السبب ، وأنا أكره مثل هذه الإجابات ، ولكن ... ذهبت المشكلة بعيدا. يمكنني التحقق من عدم تغيير رمز ، ولم تكن الحالة العابرة للجهاز المعني حيث حاولت إعادة تشغيله أكثر من مرة خلال تجارب المشكلة.

ليس لدي أي فكرة عن سبب ذلك.

نصائح أخرى

لاحظت نفس الشيء على جهاز Windows Server 2008 R2. لقد قمت بتطوير مستمعي مبدئيًا على المنفذ 8080 الذي تستخدمه معظم العينات ، ثم التبديل إلى المنفذ 80. في المرة الأولى التي ركضت فيها على المنفذ 80 ، حصلت إما على صفحة بدء IIS (لا يتم تثبيت دور IIS على الخادم الخاص بي حاليًا ، مشكلة ذاكرة التخزين المؤقت) أو صفحة فارغة. كان لدي نقاط توقف في المعالج ويمكن أن أرى الطلبات القادمة والرد عليها بنجاح. بعد إعادة تجميع (نظيفة) ، وإعادة تثبيت خدمتي وإعادة تشغيل IE ، اختفت المشكلة. لا تغيير رمز.

لذلك إذا وصلت إلى هذه المشكلة ، فحاول إعادة ترجمة التنظيف ، وإعادة تثبيت خدمتك (أو التطبيق) وأعد تشغيل IE.

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