تصحيح: متقطعة "تم إغلاق الاتصال الأساسي" ظهور رسالة الخطأ عند استدعاء خدمة ويب من ASP.NET

الأعراض

عندما تقوم باستدعاء خدمة Microsoft ASP.NET على ويب من أحد تطبيقات ASP.NET، قد تظهر رسالة الخطأ التالية بشكل متقطع:
تم إغلاق الاتصال الأساسي: حدث خطأ غير متوقع أثناء عملية إرسال.
مكدس الاستدعاءات مشابه لما يلي:
System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. At System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request) at 
System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request) at
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) at
...

الحل

الآن يتوفر إصلاح عاجل معتمد من Microsoft. ومع ذلك، الغرض منه هو حل المشكلة الموضحة في هذه المقالة فقط. تطبيقها فقط على الأنظمة التي تواجه هذه المشكلة بالتحديد. قد يتم إجراء اختبارات إضافية على هذا الإصلاح العاجل. ولذلك، إذا لم يكن تأثير المشكلة كبيرا، نوصي بالانتظار حتى الإصدار التالي حزمة الخدمة Microsoft.NET Framework الذي يحتوي على هذا الإصلاح العاجل.

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

يحتوي إصدار اللغة الإنجليزية من هذا الإصلاح العاجل على سمات الملف (أو سمات الملف الأحدث) المسرودة في الجدول التالي. يتم سرد التواريخ والأوقات الخاصة بهذه الملفات بالتوقيت العالمي المتفق عليه (UTC). عند عرض معلومات الملف، يتم تحويلها إلى التوقيت المحلي. لمعرفة الفرق بين التوقيت العالمي المتفق عليه والتوقيت المحلي، استخدم علامة التبويب المنطقة الزمنية في عنصر التاريخ والوقت في "لوحة التحكم".
   Date         Time   Version       Size       File name                    Platform
----------------------------------------------------------------------------------
01-May-2003 12:48 1.0.3705.426 20,480 Perfcounter.dll X86
01-May-2003 12:48 1.0.3705.426 1,175,552 System.dll X86
01-May-2003 12:48 1.0.3705.426 311,296 System.runtime.remoting.dll X86
01-May-2003 12:48 1.0.3705.426 503,808 System.web.services.dll X86
هذا الإصلاح العاجل الموجودة في.NET Framework 1.0 Service Pack 3 في.NET Framework 1.1 Service Pack 1.

لمزيد من المعلومات حول كيفية الحصول على أحدث حزمة خدمة ل.NET Framework 1.0، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":

كيفية الحصول على أحدث حزمة خدمة ل.NET Framework 1.0 318836

الحالة

أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "ينطبق على".

مزيد من المعلومات

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

على سبيل المثال، إذا تم استضافة خدمات ويب التي يتم استدعاؤها في برامج أو في بيئة أجهزة موازنة التحميل الذي يحتوي على الملقمات التي تدعم HTTP 1.1 واستمرار نشاط الاتصالات، ربما يكون قد انتهى الاتصال عند محاولة إعادة الاتصال بالعميل. في حالة استمرار حدوث هذا الخطأ بعد تطبيق هذا الإصلاح، جرب الحلول التالية:
  • تكوين موقع ويب الذي يستضيف خدمات ويب لا يتيح استخدام اتصالات المحافظة على الحياة. للقيام بذلك، اتبع الخطوات التالية:
    1. افتح "وحدة تحكم إدارة Microsoft ملقم معلومات إنترنت" (IIS) وتحديد موقع ملقم ويب.
    2. انقر فوق علامة التبويب موقع ويب من صفحة الخصائص لموقع ويب.
    3. انقر لإلغاء تحديد خانة الاختيار تمكين إبقاء التشغيل HTTP .
  • تحقق من أن حمل الأجهزة أو البرامج الخاصة بك بشكل صحيح تكوين لمتطلبات التطبيق الخاص بك.
  • إذا لم تكن السيطرة على بيئة الخادم الذي يستضيف خدمات ويب التي يتم إجراء المكالمة، قد يلزم تعطيل اتصالات الإبقاء على الجهاز العميل. للقيام بذلك، اتبع الخطوات التالية:
    1. تعيين خاصية الاستمرار
      الفئة HttpWebRequest إلى false.
    2. تجاوز الأسلوب HttpWebRequest في الملف Reference.cs الذي تم إنشاؤه بواسطة Microsoft Visual Studio.NET لوكيل ويب العميل. التعليمات البرمجية التالية بتجاوز الأسلوب HttpWebRequest .
      protected override WebRequest GetWebRequest(Uri uri) {
      HttpWebRequest webRequest = (HttpWebRequest) base.GetWebRequest(uri);

      webRequest.KeepAlive = false;

      return webRequest;
      }

المراجع

لمزيد من المعلومات حول كيفية الحصول على.NET Framework 1.1 Service Pack 1، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":

كيفية الحصول على حزمة الخدمة الخاص ب Microsoft.NET Framework 1.1 1 885055

خصائص

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

تعليقات