httpwebrequest.getResponse: "تم إغلاق الاتصال الأساسي: حدث خطأ غير متوقع على استلام."
-
02-10-2019 - |
سؤال
لقد كتبت خدمة 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/