httpwebrequest.getResponse: "تم إغلاق الاتصال الأساسي: حدث خطأ غير متوقع على استلام."

StackOverflow https://stackoverflow.com/questions/3197010

سؤال

لقد كتبت خدمة C# Windows (.NET Framework 3.5 ، C# 3.0) التي تنشر ملفات ومعلومات نموذج HTML إلى خادم بعيد ، ثم تخزن استجابة خادم XML في قاعدة بيانات. هنا هو الجزء الرئيسي من الكود ذات الصلة:

    HttpWebRequest request = WebRequest.Create(postUrl) as HttpWebRequest;

    request.ProtocolVersion = HttpVersion.Version10;
    request.KeepAlive = false;
    request.Timeout = 600000;
    request.ReadWriteTimeout = 600000;
    request.Method = "POST";
    request.ContentType = contentType;
    request.UserAgent = userAgent;
    request.CookieContainer = new CookieContainer();
    request.ContentLength = formData.Length;

    using (Stream requestStream = request.GetRequestStream())
    {
        // Push it out there
        requestStream.Write(formData, 0, formData.Length);
        requestStream.Close();
    }

    return request.GetResponse() as HttpWebResponse;

تعمل خدمتي بشكل صحيح لجميع الملفات الصغيرة ، لكنني أحصل على الخطأ التالي عندما أحاول إرسال ملفات أكبر (8-9 ميغابايت).

    The underlying connection was closed: An unexpected error occurred on a receive.

نظرت إلى الطلب الصادر باستخدام Fiddler ، وتمكنت من جمع المعلومات التالية:

    HTTP/1.1 504 Fiddler - Receive Failure
    Content-Type: text/html
    Connection: close
    Timestamp: 12:25:04.067

    ReadResponse() failed: The server did not return a response for this request.

يحدث الفشل بعد 7 دقائق من الاتصال request.getResponse (). هل هناك أي طريقة لتحديد من يغلق الاتصال؟ وهل هناك أي شيء آخر يجب أن أجربه في نهايتي لحل هذه المشكلة؟ شكرا مقدما!

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

المحلول

نظرًا لأنك ذكرت أنها تعمل في ملفات صغيرة ، ولكن ليس أكبر ، أقترح التحقق من حجم تحميل ملف MAX على الخادم. أعتقد أن الافتراضي هو 4 ميجابايت. http://support.microsoft.com/kb/295626

تحرير: لاحظت أن الرابط أعلاه قديم إلى حد ما. هذا واحد ل IIS7: http://www.cyprich.com/2008/06/19/fixing-file-upload-size-limit-in-iis-7/

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