ظهور رسائل خطأ واحد أو أكثر عند محاولة إجراء طلب HTTP في تطبيق يستند.NET Framework 1.1 Service Pack 1

ملخص

توضح هذه المقالة رسائل الخطأ التي قد تتلقاها عند استخدام Microsoft.NET Framework 1.1 Service Pack 1 (SP1) لجعل طلبات HTTP أو عند استدعاء خدمة ويب.

الأعراض

عند محاولة إجراء طلب HTTP في تطبيق يستند إلى.NET Framework، قد تظهر واحدة أو أكثر من رسائل الخطأ التالية:
رسالة الخطأ 1
تم إغلاق الاتصال الأساسي: غير قادر على الاتصال بملقم بعيد.
رسالة الخطأ 2
تم إغلاق الاتصال الأساسي: حدث خطأ غير متوقع أثناء عملية إرسال.
رسالة الخطأ الثالثة
تم إغلاق الاتصال الأساسي: حدث خطأ غير متوقع عند المتلقي.
رسالة الخطأ 4
تم إغلاق الاتصال الأساسي: ارتكب الخادم انتهاك بروتوكول HTTP.
رسالة الخطأ 5
تم إغلاق الاتصال الأساسي: تعذر تأسيس قناة آمنة ل SSL/TLS.
رسالة الخطأ 6
العملية انتهت مهلة

السبب

رسالة الخطأ 1

تحدث هذه المشكلة عند.NET Framework لا يمكن تأسيس اتصال بملقم بعيد. قد تحدث هذه المشكلة عند واحد أو أكثر من الشروط التالية صحيحاً:
  • يحدث انقطاع شبكة.
  • ملقم وكيل بحظر طلب HTTP.
  • تحدث مشكلة في نظام اسم مجال (DNS).
  • تحدث مشكلة مصادقة شبكة اتصال.
لحل هذه المشكلة، انظر القرارين A و B و c.

رسالة الخطأ 2

تحدث هذه المشكلة عندما يتعذر على الكمبيوتر العميل إرسال طلب HTTP. يتعذر على الكمبيوتر العميل إرسال طلب HTTP للاتصال تم إغلاقه أو غير متوفر. قد تحدث هذه المشكلة عندما يقوم الكمبيوتر العميل بإرسال الكثير من البيانات. لحل هذه المشكلة، انظر القرارين A، دال، هاء وواو وسين

رسالة الخطأ الثالثة

تحدث هذه المشكلة عند إغلاق اتصال بروتوكول تحكم بإرسال (TCP) بشكل غير متوقع الخادم أو جهاز آخر على الشبكة. قد تحدث هذه المشكلة عند تعيين قيمة مهلة الخادم أو جهاز الشبكة منخفضة جداً. لحل هذه المشكلة، انظر القرارين A، دال، هاء وواو وسين يمكن أن تحدث المشكلة أيضا إذا كان الخادم بإعادة تعيين الاتصال بشكل غير متوقع، مثل ما إذا كان استثناء لم تتم معالجته تعطل عملية الخادم. تحليل سجلات الملقم لمعرفة حالة هذه المشكلة.

رسالة الخطأ 4

تحدث هذه المشكلة عند اكتشاف.NET Framework استجابة الملقم لا يتوافق مع HTTP 1.1 RFC. قد تحدث هذه المشكلة عند الاستجابة يحتوي على عناوين غير صحيحة أو محددات رأس غير صحيح. لحل هذه المشكلة، انظر قراري أ وج.

لمزيد من المعلومات حول رؤوس HTTP، قم بزيارة موقع "ويب اتحاد شبكة ويب العالمية" التالية:توفر Microsoft معلومات الاتصال خارجية لمساعدتك في الحصول على الدعم التقني. قد تتغير معلومات جهة الاتصال هذه دون إشعار. لا تضمن Microsoft دقة معلومات جهة الاتصال لهذه الجهات الأخرى.

رسالة الخطأ 5

قد تحدث هذه المشكلة عند واحد أو أكثر من الشروط التالية صحيحاً:
  • استخدام شهادة عميل غير صحيح أو شهادة ملقم غير صالح.
  • كنت تواجه مشكلة في اتصال TCP.
  • الكمبيوتر العميل بإرسال الكثير من البيانات.
  • يتم تعيين إعداد مهلة على الملقم أو على جهاز آخر على الشبكة منخفضة جداً.
  • كنت تواجه مشكلة في توافق بروتوكول HTTPS.
مشاكل اتصال TCP، انظر القرارين A، دال، هاء وواو وسين مشاكل شهادات العميل والخادم شهادة المشكلات، انظر القرارات ح وأنا. مشاكل التوافق في بروتوكول HTTPS، انظر القرار ج.

رسالة الخطأ 6

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

الحل

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

القرار ألف

لحل هذه المشكلة، تأكد من أنك تستخدم أحدث إصدار من برنامج.NET Framework.
لمزيد من المعلومات، انقر فوق رقم المقالة التالية لعرضها في "قاعدة معارف Microsoft":
318785 هي كيفية تحديد إصدارات.NET Framework المثبتة وما إذا كان تطبيق حزم الخدمة

القرار باء

لحل هذه المشكلة، تأكد من صحة إعدادات الوكيل. للقيام بذلك، استخدم الأساليب التالية:
  • استخدم الأسلوب WebProxy.GetDefaultProxy الثابت. لمزيد من المعلومات، قم بزيارة موقع Microsoft التالي على الويب:
  • تعريف عنصر < وكيل > في ملفات تكوين التطبيق. لمزيد من المعلومات، قم بزيارة موقع Microsoft التالي على الويب:
  • تكوين عميل.NET لاستخدام HTTP 1.0 بتغيير الخاصية HttpWebRequest.ProtocolVersion . لمزيد من المعلومات، قم بزيارة موقع Microsoft التالي على الويب:ملاحظة: بشكل افتراضي، يستخدم.NET Framework HTTP 1.1.
  • إذا كنت تستخدم طبقة مأخذ التوصيل الآمنة (SSL)، تأكد من أنه لم يتم تكوين الوكيل لاستخدام أي القواعد التي تمنع HTTPS.
  • إذا كنت تستخدم autoproxy، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
    873199 كيفية استخدام autoproxy في التعليمات البرمجية المدارة

القرار جيم

لحل هذه المشكلة، تأكد من أن التطبيق أذونات لإجراء اتصالات شبكة الاتصال وإجراء مكالمات مأخذ التوصيل. ينطبق هذا القرار عند تشغيل التطبيق الذي يقوم باستدعاء HttpWebRequest داخل تطبيق ويب. قد تضطر إلى منح أذونات القراءة إلى حساب ASPNET بحيث يمكنك الوصول إلى الموارد التالية:
  • ملف Microsoft موفر WS2.0 وينسوكبروكسي (Wspwsp.dll)
  • مفتاح التسجيل HKLM\System\CurrentControlSet\Services\DnsCache
  • مفتاح التسجيل HKLM\System\CurrentControlSet\Services\WinSock2
ملاحظة: لتحديد ما إذا كانت عملية عامل ASPNET لديه الأذونات اللازمة، استخدم الأداة المساعدة فيلمون والأداة المساعدة RegMon. لتنزيل الأداة المساعدة فيلمون والأداة المساعدة RegMon، قم بزيارة موقع ويب شركة Sysinternals التالي:منتجات الجهات الأخرى المذكورة في هذه المقالة تابعة لشركات مستقلة عن Microsoft. لا تقدم Microsoft أي ضمان، سواء ضمنياً أو صريحا، بخصوص أداء هذه المنتجات أو كفائتها.

القرار دال

لحل هذه المشكلة، تعطيل ميزة الإبقاء. في.NET Framework، تعيين الخاصية HttpWebRequest.KeepAlive إلى FALSE. للقيام بذلك عندما تقوم باستدعاء خدمة ويب، اتبع الخطوات التالية.

ملاحظة: مطلوب ميزة الإبقاء لمصادقة NTLM.
  1. إنشاء فئة جديدة من وراثة فئة الوكيل الذي تم إنشاؤه.
  2. إضافة أسلوب إلى فئة لتجاوز الأسلوب جيتويبريقويست . هذا التغيير يسمح لك الوصول إلى الكائن HttpWebRequest . إذا كنت تستخدم Microsoft Visual C#، يجب أن يكون الأسلوب الجديد مشابهة لما يلي.
    class MyTestService:TestService.TestService{
    protected override WebRequest GetWebRequest(Uri uri)
    {
    HttpWebRequest webRequest = (HttpWebRequest) base.GetWebRequest(uri);
    //Setting KeepAlive to false
    webRequest.KeepAlive = false;
    return webRequest;
    }
    }
    إذا كنت تستخدم Microsoft Visual Basic.NET، يجب أن يكون الأسلوب الجديد مشابهة لما يلي.
    Class MyTestService      Inherits TestService.TestService
    Protected Overrides Function GetWebRequest(ByVal uri As Uri) As System.Net.WebRequest
    Dim webRequest As System.Net.HttpWebRequest
    webRequest = CType(MyBase.GetWebRequest(uri), System.Net.HttpWebRequest)
    'Setting KeepAlive to false
    webRequest.KeepAlive = False
    GetWebRequest = webRequest
    End Function
    End Class
  3. إنشاء مثيل للفئة الجديدة، واستخدم الفئة الجديدة لاستدعاء أسلوب خدمة الويب.

القرار هاء

لحل هذه المشكلة، تعيين الخاصية ServicePointManager.MaxServicePointIdleTime إلى أقل من قيمة مهلة اتصال الملقم المحافظة على الحياة.

ملاحظات
  • عندما كان خاملاً كائن ServicePoint للوقت المحدد في الخاصية MaxIdleTime ، أنها مؤهلة لتجميع البيانات المهملة.
  • تأكد من تعيين الخاصية ServicePointManager.MaxServicePointIdleTime قبل إجراء أية طلبات HTTP. لمزيد من المعلومات حول خاصية ServicePointManager.MaxSercvePointIdleTime ، قم بزيارة موقع Microsoft التالي على الويب:

القرار واو

لحل هذه المشكلة، زيادة قيمة المهلة على الكمبيوتر الملقم وعلى أجهزة شبكة الاتصال الأخرى. لزيادة قيمة المهلة في Microsoft Internet معلومات Services (IIS) 6.0، اتبع الخطوات التالية:
  1. انقر فوق ابدأ، ثم انقر فوق لوحة التحكم، انقر فوق أدوات إدارية، وثم انقر فوق
    إدارة (IIS) خدمات معلومات إنترنت.
  2. انقر فوق اسم الكمبيوتر الذي تريد تكوين ومن ثم انقر فوق مواقع ويب.
  3. زر الماوس الأيمن فوق موقع ويب الذي تريد تكوين، ومن ثم انقر فوق خصائص.
  4. اكتب قيمة جديدة في المربع مهلة الاتصال، ومن ثم انقر فوق موافق.
  5. من القائمة ملف ، انقر فوق
    إنهاء.

القرار زاي

لحل هذه المشكلة، تعيين أوسيونسافيهيديربارسينج إلى True. لمزيد من المعلومات حول خاصية أوسيونسافيهيديربارسينج، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
888528 قائمة بالأخطاء التي تم إصلاحها في.NET Framework 1.1 Service Pack 1، لكن لم يتم توضيحها في مكان آخر في مقالات "قاعدة المعارف ل Microsoft" الفردية

القرار حاء

لحل هذه المشكلة، توفير شهادة عميل صالح للتطبيق.
لمزيد من المعلومات حول كيفية استخدام شهادات العميل، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
901183 كيفية استدعاء خدمة ويب باستخدام شهادة عميل للمصادقة في تطبيق ويب ASP.NET

كيفية إرسال شهادة عميل باستخدام الفئات HttpWebRequest وهتبويبريسبونسي في Microsoft Visual C#.NET 895971

دقة أنا

لحل هذه المشكلة، توفير شهادة أمان صحيح للخادم. بالإضافة إلى ذلك، قد تتمكن من حل هذه المشكلة عن طريق تثبيت شهادة المرجع المصدق (CA) الشهادة الجذر أو تصحيح الاسم الشائع لشهادة الملقم. لمزيد من المعلومات حول تسمية شهادة الخادم، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
تنبيه أمان 813618 : اسم شهادة الأمان غير صالح أو لا يطابق اسم الموقع

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

يمكنك أيضا مراجعة التعليمات البرمجية للتطبيق لتجاهل هذه التحذيرات الشهادة. للقيام بذلك، بتطبيق واجهة إيسيرتيفيكاتيبوليسي الخاصة بك. ثم يمكنك تعيين الخاصية ServicePointManager.CertificatePolicy لاستخدام مثيل نهج الشهادة الخاصة بك قبل إجراء استدعاء أسلوب خدمة الويب.

ملاحظة: الأسلوب ICertificatePolicy.CheckValidationResult يطبق نهج التحقق من صحة شهادة التطبيق. لمزيد من المعلومات حول أسلوب ICertificatePolicy.CheckValidationResult ، قم بزيارة موقع Microsoft التالي على الويب:لمزيد من المعلومات ونموذج التعليمات برمجية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
823177 PRB: "System.Net.WebException. تم إغلاق الاتصال الأساسي. ظهور رسالة الخطأ تعذر تأسيس علاقة ثقة مع الملقم البعيد "عند ترقية برنامج.NET Framework

هام: نوصي بعدم تجاهل التحذيرات بشأن شهادة SSL في التعليمات البرمجية بسبب المخاطر الأمنية المحتملة.

القرار ياء

لحل هذه المشكلة، تغيير البروتوكول HTTPS من SSL إلى أمان مستوى النقل (TLS).

ملاحظة: إذا كنت تستخدم بالفعل TLS، تغيير بروتوكول HTTPS إلى SSL. لتغيير بروتوكول HTTPS على كمبيوتر العميل، راجع المقطع "ServicePointManager.SecurityProtocol الملكية" على موقع Microsoft التالي على الويب:ملاحظة: على سبيل المثال، لدعم بروتوكول SSL3 وبروتوكول TLS1، استخدم تعليمات برمجية مشابهة لما يلي.
ServicePointManager.SecurityProtocol= SecurityProtocolType.Ssl3|SecurityProtocolType.Tls;
لمزيد من المعلومات حول كيفية تغيير بروتوكول HTTPS على كمبيوتر الملقم، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
كيفية تعطيل PCT 1.0 أو SSL 2.0 أو SSL 3.0 أو TLS 1.0 في "خدمات معلومات إنترنت" 187498

القرار كاف

لحل هذه المشكلة، زيادة قيمة خاصية maxConnection . للقيام بذلك، مراجعة ملفات التكوين للتطبيق أو إضافة التعليمات البرمجية للتطبيق.

ملاحظة: القيمة الافتراضية لخاصية maxConnection هو 2. اتصال ASP.NET تطبيقات Microsoft التي استدعاء خدمات الويب، نوصي بتعيين قيمة 12 مرة على عدد المعالجات. لتعيين هذه القيمة باستخدام التعليمات البرمجية للتطبيق، استخدم الخاصية ServicePointManager.DefaultConnectionLimit . لمزيد من المعلومات حول خاصية ServicePointManager.DefaultConnectionLimit ، قم بزيارة موقع Microsoft التالي على الويب:لتعيين هذه القيمة باستخدام ملفات التكوين للتطبيق، أضف التعليمات البرمجية التالية إلى ملف التكوين.
<connectionManagement>  <add address="*" maxconnection="
12"/></connectionManagement>

لمزيد من المعلومات حول كيفية استخدام عنصر < كوننيكتيونماناجيمينت > ، قم بزيارة موقع Microsoft التالي على الويب:

القرار لام

لحل هذه المشكلة، تأكد من أن يتم تطبيق إعدادات مهلة الخادم وأجهزة الشبكة الأخرى بشكل صحيح. لمزيد من المعلومات حول كيفية تطبيق إعدادات المهلة، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
904262 الطلب التي تم إرسالها بواسطة الفئة HttpWebRequest قد توقف عن الاستجابة عند استخدام فئة HttpWebRequest في تطبيق ASP.NET

القرار ميم

لحل هذه المشكلة، اقرأ حول ضبط الأداء ASP.NET. لمزيد من المعلومات حول ضبط الأداء ASP.NET، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
821268 ادعاء سوء الأداء وحالات التوقف التام عندما تتقدم بطلبات خدمة ويب من تطبيقات ASP.NET

القرار نون

لحل هذه المشكلة، بزيادة قيم خصائص المهلة في التعليمات البرمجية للتطبيق العميل. للقيام بذلك، استخدم الخصائص التالية:
  • HttpWebRequest.Timeout
  • HttpWebRequest.ReadWriteTimeout
لمزيد من المعلومات حول خاصية HttpWebRequest.Timeout ، قم بزيارة موقع Microsoft التالي على الويب:لمزيد من المعلومات حول خاصية HttpWebRequest.ReadWriteTimeout ، قم بزيارة موقع Microsoft التالي على الويب:

القرار سين

لحل هذه المشكلة، تأكد من أن الكمبيوتر العميل لا يرسل HTTP 100-متابعة رأس. بالإضافة إلى ذلك، تأكد من أن جهاز الكمبيوتر العميل لا يتوقع تلقي HTTP 100-متابعة رأس.

ملاحظة: هذا القرار يكون فعالاً إذا لم يعتمد ملقم ويب أو ملقم وكيل HTTP 100-متابعة رأس. لمزيد من المعلومات حول كيفية تعطيل HTTP 100-متابعة رأس للكمبيوتر العميل، قم بزيارة موقع Microsoft التالي على الويب:

المراجع

لمزيد من المعلومات حول اعتبارات الأداء عند إجراء ويب الخدمة المكالمات من تطبيقات ASP.NET متصل، قم بزيارة موقع Microsoft التالي على الويب:لمزيد من المعلومات حول مشكلات في الأداء ومشاكل حالة توقف تام عند إجراء ويب خدمة طلبات من تطبيقات ASP.NET متصل، انقر فوق رقم المقالة التالي لعرض المقالة في قاعدة معارف Microsoft:
821268 ادعاء سوء الأداء وحالات التوقف التام عندما تتقدم بطلبات خدمة ويب من تطبيقات ASP.NET

لمزيد من المعلومات حول كيفية تحسين أداء تطبيقات ASP.NET متصل، قم بزيارة موقع Microsoft التالي على الويب:لمزيد من المعلومات حول كيفية تحسين أداء خدمات ويب، قم بزيارة موقع Microsoft التالي على الويب:لمزيد من المعلومات حول كيفية إنشاء تطبيقات آمنة ASP.NET متصل، قم بزيارة موقع Microsoft التالي على الويب:ملاحظة: يتم استخدام بروتوكول النقل TCP لطلبات HTTP. TCP بروتوكول مهيأ للاتصال، يمكن الاعتماد عليها. ومع ذلك، إذا تم إغلاق اتصال TCP بشكل غير متوقع، التطبيق عدد مرات إعادة محاولة الطلب. لمزيد من المعلومات حول بروتوكول TCP وسلوك العميل إذا يقوم الملقم بإغلاق اتصال، قم بزيارة موقع "ويب اتحاد شبكة ويب العالمية" التالية:توفر Microsoft معلومات الاتصال خارجية لمساعدتك في الحصول على الدعم التقني. قد تتغير معلومات جهة الاتصال هذه دون إشعار. لا تضمن Microsoft دقة معلومات جهة الاتصال لهذه الجهات الأخرى.
لمزيد من المعلومات حول الأداة المساعدة فيلمون والأداة المساعدة RegMon، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
198038 أدوات مفيدة لمشاكل الحزم والتوزيع

لمزيد من المعلومات حول "مراقب الشبكة"، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
148942 كيفية التقاط حركة مرور شبكة الاتصال بواسطة "مراقب شبكة الاتصال"

كيفية استخدام "مراقبة شبكة الاتصال" لالتقاط حركة مرور شبكة الاتصال 812953

خصائص

رقم الموضوع: 915599 - آخر مراجعة: 15‏/01‏/2017 - المراجعة: 1

تعليقات