Sie sind zurzeit offline. Es wird auf die erneute Herstellung einer Internetverbindung gewartet.

Eine ASP.NET-Anforderung, die viele Formularschlüssel, Dateien oder Mitglieder der JSON-Nutzlast hat, schlägt mit einer Ausnahme fehl

Der Support für Windows XP wurde eingestellt

Microsoft stellte am 8. April 2014 den Support für Windows XP ein. Diese Änderung wirkt sich auf Ihre Softwareupdates und Sicherheitsoptionen aus. Erfahren Sie, was das für Sie bedeutet und wie Sie Ihren Schutz aufrechterhalten können.

Der Support für Windows Server 2003 ist am 14. Juli 2015 abgelaufen.

Microsoft beendete den Support für Windows Server 2003 am 14. Juli 2015. Diese Änderung wirkt sich auf Ihre Softwareupdates und Sicherheitsoptionen aus. Erfahren Sie, was das für Sie bedeutet und wie Sie Ihren Schutz aufrechterhalten können.

Zusammenfassung
Das Microsoft-Sicherheitsupdate MS11-100 begrenzt die Höchstanzahl der Formularschlüssel, Dateien und JSON-Mitglieder in einer HTTP-Anforderung auf 1.000. Diese Änderung wird ASP.NET-Anwendungen Zurückweisungsanforderungen, die mehr als 1.000 dieser Elemente aufweisen. HTTP-Clients mit derartigen Anforderungen werden abgelehnt, und im Webbrowser wird eine Fehlermeldung angezeigt. Die Fehlermeldung hat in der Regel einen HTTP 500-Statuscode. Diese neue Grenze kann auf pro Anwendung konfiguriert werden. Anleitungen zur Konfiguration finden Sie in Abschnitt "Auflösung".


Problembeschreibung
ASP.NET-Anforderungen, die viele Formularschlüssel, Dateien oder eine hohe JSON-Nutzlast haben, empfangen eine Fehlerantwort vom Server. Das Anwendungsprotokoll auf dem Server enthält einen Warnungseintrag mit einer Quelle, bei der es sich um eine spezifische Version von ASP.NET handelt, und die Ereignis-ID "1309". Das Ereignisprotokoll enthält eine der folgenden Meldungen: 


Meldung 1:
Informationen zur Anwendung:
Anwendungsdomäne: /LM/W3SVC/1/ROOT/<App-Domäne>
Vertrauensstufe: Mittel
Virtueller Anwendungspfad: <VDIR-Pfad>
Anwendungspfad: <App-Pfad>
Computername: <Computername>
Prozessinformationen:
Prozess-ID: 0001
Prozessname: w3wp.exe
Kontoname: IIS-APPPOOL\DefaultAppPool

Ausnahmeinformationen:
Ausnahmetyp: HttpException
Ausnahmemeldung: Ungültige URL-codierte Formulardaten.
Bei System.Web.HttpRequest.FillInFormCollection()
Bei System.Web.HttpRequest.get_Form()
Bei System.Web.HttpRequest.get_HasForm()
Bei System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
Bei System.Web.UI.Page.DeterminePostBackMode()
Bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 


Meldung 2:
Informationen zur Anwendung:
Anwendungsdomäne: /LM/W3SVC/1/ROOT/<App-Domäne>
Vertrauensstufe: Mittel
Virtueller Anwendungspfad: <VDIR-Pfad>
Anwendungspfad: <App-Pfad>
Computername: <Computername>

Prozessinformationen:
Prozess-ID: 0001
Prozessname: w3wp.exe
Kontoname: IIS-APPPOOL\DefaultAppPool

Ausnahmeinformationen:
Ausnahmetyp: InvalidOperationException
Ausnahmemeldung: Der Vorgang ist aufgrund des aktuellen Zustands des Objekts ungültig.
Bei System.Web.HttpRequest.FillInFilesCollection()
Bei System.Web.HttpRequest.get_Files()
Bei FileUpload.Page_Load(Object sender, EventArgs e)
Bei System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
Bei System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
Bei System.Web.UI.Control.OnLoad(EventArgs e)
Bei System.Web.UI.Control.LoadRecursive()
Bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint

Meldung 3:
Informationen zur Anwendung:
Anwendungsdomäne: /LM/W3SVC/1/ROOT/<App-Domäne>
Vertrauensstufe: Mittel
Virtueller Anwendungspfad: <VDIR-Pfad>
Anwendungspfad: <App-Pfad>
Computername: <Computername>

Prozessinformationen:
Prozess-ID: 0001
Prozessname: w3wp.exe
Kontoname: IIS-APPPOOL\DefaultAppPool

Ausnahmeinformationen:
Ausnahmetyp: InvalidOperationException
Ausnahmemeldung: Der Vorgang ist aufgrund des aktuellen Zustands des Objekts ungültig.
Bei System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth)
Bei System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)
Bei System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)
Bei System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)
Bei System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject(String input)
Bei Failing.Page_Load(Object sender, EventArgs e)
Bei System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
Bei System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
Bei System.Web.UI.Control.OnLoad(EventArgs e)
Bei System.Web.UI.Control.LoadRecursive()
Bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 


Die IIS-Protokolldatei enthält einen Eintrag etwa folgenden Inhalts:
2011-01-01 00:00:00 ::1 POST /machine/default.aspx - 80 - ::1 - 500 0 0 187




Ursache
Das Microsoft-Sicherheitsupdate, das im Sicherheitsbulletin MS11-100 beschrieben ist, ändert die standardmäßige Höchstanzahl der Formularschlüssel, Dateien und JSON-Mitglieder, die ASP.NET akzeptiert, in 1.000. Diese Änderung wurde vorgenommen, um das im Microsoft-Sicherheitsbulletin dokumentierte DoS-Sicherheitsrisiko (DoS = Denial of Service) zu adressieren.


Lösung
Anwendungen, die dieses Limit für Formularschlüssel oder Dateien errreichen, können die ASP.NET-AppSetting aspnet:MaxHttpCollectionKeys ändern, wie im Folgenden in einer Konfigurationsdatei einer ASP.NET-Anwendung dargestellt. Diese Einstellung befasst sich mit Fehlermeldung 1 und Fehlermeldung 2 im Abschnitt "Problembeschreibung".
<configuration><appSettings><add key="aspnet:MaxHttpCollectionKeys" value="1000" /></appSettings></configuration>


Hinweis Wenn Sie ASP.NET 1.1 auf einem x86-basierten System verwenden, wird die Einstellung durch Hinzufügen eines DWORD-Werts zum folgenden Registrierungsschlüssel angepasst:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys
Wenn Sie ASP.NET 1.1 auf einem x64-basierten System verwenden, wird die Einstellung durch Hinzufügen eines DWORD-Werts zum folgenden Registrierungsschlüssel angepasst:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys



Anwendungen, die dieses Limit für JSON-Nutzlasten erreichen, können die ASP.NET-AppSetting aspnet:MaxJsonDeserializerMembers ändern, wie im Folgenden in einer Konfigurationsdatei einer ASP.NET-Anwendung dargestellt. Diese Einstellung befasst sich mit der Fehlermeldung 3 in Abschnitt "Problembeschreibung".
<configuration><appSettings><add key="aspnet:MaxJsonDeserializerMembers" value="1000" /></appSettings></configuration>



Hinweis Durch Erhöhen dieses Werts über die Standardeinstellung wird die Anfälligkeit des Servers für DoS-Angriffe erhöht, die in Sicherheitsbulletin MS11-100 beschrieben ist.


Informationsquellen
Weitere Informationen zum Sicherheitsbulletin MS11-100 finden Sie im folgenden TechNet-Artikel: Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
2638420 MS11-100: Sicherheitsrisiko im .NET Framework kann eine Erhöhung von Berechtigungen ermöglichen: 29. Dezember 2011
Eigenschaften

Artikelnummer: 2661403 – Letzte Überarbeitung: 11/29/2012 14:33:00 – Revision: 4.0

  • Microsoft .NET Framework 4.0
  • Microsoft .NET Framework 3.5 Service Pack 1
  • Microsoft .NET Framework 3.5
  • Microsoft .NET Framework 2.0 Service Pack 2
  • Microsoft .NET Framework 2.0 Service Pack 1 (x86)
  • Microsoft .NET Framework 2.0
  • Microsoft .NET Framework 1.1 Service Pack 1
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0 Service Pack 3
  • Microsoft .NET Framework 1.0
  • Windows 7 Service Pack 1
  • Windows 7 Enterprise
  • Windows 7 Professional
  • Windows 7 Ultimate
  • Windows 7 Home Premium
  • Windows 7 Home Basic
  • Windows Server 2008 R2 Service Pack 1
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 Service Pack 2
  • Windows Vista Service Pack 2
  • Microsoft Windows Server 2003 Service Pack 2
  • Microsoft Windows XP Service Pack 3
  • atdownload kbbug kbexpertiseinter kbfix kbsecbulletin kbsecurity kbsecvulnerability KB2661403
Feedback