Mrz 222012
 
  • Betrifft: Microsoft Exchange Server 2007
  • System: Microsoft Windows Server 2003 R2 x64 Edition, Microsoft Windows Server 2008 x64 Edition, Microsoft Windows Server 2008 R2
  • Problem: Der Versand von Emails mit Anhang ĂŒber Exchange Server Konto bei mobilen GerĂ€ten (via ActiveSync) funktioniert nicht. Auf den mobilen GerĂ€ten erhĂ€lt man nur eine allgemeine Fehlermeldung. Jedoch in den Logdateien beim Internet Information Service (IIS) sieht man den HTTP Fehler 413: Anforderungseinheit zu groß. Übertragung erfolgt via SSL verschlĂŒsselt.

 

Hintergrund

Mobile GerĂ€te, vor allem Smartphones können mit dem Microsoft Exchange Server ĂŒber ActiveSync synchronisieren. Hierbei werden neben Kalender, Kontakte, Aufgaben auch Emails synchronisiert. NatĂŒrlich inklusive Anhang. Dementsprechend sollte natĂŒrlich auch der Versand von Anhang möglich sein.

Leider gibt es hierbei mit Android und Windows Phone manchmal so einige Probleme. Der Versand von Emails mit Anhang ist bei diesen GerĂ€ten nicht möglich. Dagegen wunderbar klappt das Ganze mit Windows Mobile bzw. bei allen mobilen GerĂ€ten wenn man keinen Anhang versendet. Die GerĂ€te selbst liefern leider keine weiteren Hinweise. Man erhĂ€lt wenn ĂŒberhaupt nur einen "allgemeinen Fehler".

Dagegen kann man auf dem zugehörenden Webserver, nÀmlich den IIS manchmal eine weitaus interessantere Fehlermeldung finden:

Deutsch Englisch
HTTP-Fehler 413: Anforderungseinheit zu groß HTTP Error 413: Request entity too large

 

Damit wird angedeutet, dass die empfangene Anfrage durch das mobile GerĂ€t zu groß ist – also zu viele Bytes benötigt. Genauer wurde eine Anfrage grĂ¶ĂŸer als 128 kB gesendet. Bei einem verschlĂŒsseltem Zugriff muss dementsprechend auch die Anfrage ĂŒber SSL erfolgen. Damit werden allein schon wegen der VerschlĂŒsselung grĂ¶ĂŸere Zeichen verwendet. Die Grenze wird mit der ab IIS 6.0 eingefĂŒgten Variabel UploadReadAheadSize gesteuert.

 

FĂŒr die Behebung gibt es zwei Ansatzpunkte. Der erste ist die Erhöhung der zuvor genannten Variabel (sollte aber nicht zu großzĂŒgig gewĂ€hlt werden) oder alternativ eine Änderung der SSL Einstellung am IIS, damit Clientzertifikate ignoriert werden.

 

 

Behebung, deaktivieren der Clientzertifikate

Es macht natĂŒrlich Sinn, die Einstellung nur fĂŒr die mobilen GerĂ€te zu Ă€ndern. Also den entsprechenden Pfad fĂŒr "Microsoft-Server-ActiveSync" aufrufen.

iis6_activesync_pfad

Bei IIS 6.0 muss man mittels Rechtklick in die "Eigenschaften", dann auf das Register "Verzeichnissicherheit" und bei "Sichere Kommunikation" auf "Bearbeiten" und im neu erscheinenden Fenster bei "Clientzertifikate" die Option "Clientzertifikate ignorieren" auswĂ€hlen. Danach alle Fenster mit "Ok" schließen.

iis6_clientzertifikat_deaktivieren

Bei IIS 7.x ist es etwas anders. Sobald man hier ebenfalls den korrekten Ordner gefunden hat einfach diesen markieren und im Hauptfenster die Option "SSL-Einstellungen" aufrufen.

iis7_ssl_einstellungen

Danach einfach wieder bei "Clientzertifikate" die Option "Ignorieren" wĂ€hlen und auf "Übernehmen" klicken.

iis7_clientzertifikat_deaktivieren

Damit sollten sofort ohne Neustart alle mobilen GerÀte Emails mit Anhang versenden können.

 

Behebung, Erhöhung von UploadReadAheadSize

Bei IIS 6.0 benötigt man das Skript "adsutil.vbs". Der Wert wird in Byte angegeben. Manchmal steht im Internet mit Kilobytes, aber ist falsch. FĂŒr die Änderung auf 200 kB und der Website ID 1 benötigt man folgenden Befehl im Konsolenfenster. NatĂŒrlich muss zuvor der korrekte Pfad zum Skript aufgerufen werden:

cscript adsutil.vbs set w3svc/1/uploadreadaheadsize 204800

 

Ab IIS 7.x gibt es nicht mehr das Skript "adsutil.vbs". DafĂŒr aber die Datei "applicationHost.config". FĂŒr die Änderung empfehlt sich die Anwendung "appcmd.exe", die man im Pfad "\Windows\system32\inetsrv" findet. Also erneut das Konsolenfenster öffnen und in den korrekten Pfad wechseln.

appcmd.exe set config -section:system.webserver/serverruntime/uploadreadaheadsize:"204800" /commit:apphost

weitere relevante BeitrÀge...

  2 Antworten zu “HTTP-Fehler 413, Anforderungseinheit zu groß”

Kommentare (2)
  1. Guten tag

    Ich habe eine Frage: Kann dieser Befehl (appcmd.exe set config -section:system.webserver/serverruntime/uploadreadaheadsize:“204800″ /commit:apphost) auch nur spezifisch fĂŒr EAS angewendet werden? Das Problem ist sehr drĂ€ngend, ich sollte heute noch eine Lösung haben.

    Vielen Dank und viele GrĂŒsse
    Kaspar Brönnimann

    • Hi,

      Also UploadReadAheadSize ist eine Servereinstellung. Mir ist nicht bekannt, dass man dies nur fĂŒr eine Anwendung bzw. Verzeichnis verstellen könnte. Es gibt zwar fĂŒr andere Variablen diese Unterteilung, aber hier in diesem Fall gilt es fĂŒr die ISAPI Erweiterung.

      So nebenbei: Durch die Erhöhung des Wertes kommt es nicht wirklich zu einer Erhöhung eines Sicherheitsrisiko – zumindest lt. meinen jĂŒngsten Recherchen. Die Last fĂŒr den Server sollte ebenso gleich bleiben.

 Antworten

Du kannst diese HTML Tags und Attribute benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(erforderlich)

(erforderlich)