سؤال

منذ اليوم ، أحصل على استثناء على IIS7.5 مع ASP.NET MVC ، لكنني لا أعرف السبب.

يحدث أثناء استخدام system.net.webclient.downloadString ()

WebException: أعاد الخادم البعيد خطأ: (500) خطأ خادم داخلي.

إذا فتحت عنوان URL في المتصفح. يظهر الموقع بشكل جيد.

في VS2008 حالة تتبع التصحيح هي: "200 OK"

الشيء الوحيد الذي يمكن أن يراه هو:

استجابة. الرؤوس "من النوع استثناء" system.platformNotSupportedException "سبب. system.collections.specialized.namevalueCollection {system.platformnotsupportedException}

يرجى استخدام وضع خط الأنابيب المتكامل في IIS.

يتم تشغيل كل من موقع الويب ضمن نفس مجموعة تطبيقات V2.0 .NET مع تمكين خط أنابيب متكامل. تنزيل من مثل Google.com وما إلى ذلك. فقط إذا اتصلت بـ MVC فهذا تالف.

يبدو أن وحدة التحكم في MVC تبدو هكذا:

    public void online()
    {
        Response.Write(Date.Time.Now);
        Response.End();
        return;
    }

نجحت من قبل. قد يساعد شخص ما في الحصول على مزيد من التفاصيل لتعقب الخطأ.

تحديث:

فهمتك. عليك اللعنة. راجعت تاريخ التخريب في ASP.NET MVC فحص كل سطر. في بلدي basecontroller ، أضفت مؤخرًا:

string strUserAgent = Request.UserAgent.ToString().ToLower();

بعد إزالة. كل شيء يعمل مرة أخرى. ولكن لماذا يتم تعطل System.net.webclient عند طلب المستخدم؟ حتى مع 200 حالة. سأعطي هذا التحقيق القليل.

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

المحلول

في حالتي ، هذا الخدعة:

if (Request.UserAgent != null)
{
  string strUserAgent = Request.UserAgent.ToString().ToLower();
}

ولكن من المقرر أن يكون stuipid من system.net.webclient رمي استثناء عندما يقوم خادم الويب بطلب. useragent حتى هناك حالة http 200.

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