Aracılığıyla paylaş


Exchange Server'dan önceki bir Exchange Server sürümüne HTTP isteklerine ara sunucu oluştururken "HTTP 400 Hatalı İstek" hatası

Belirtiler

Kullanıcı, istemci erişim hizmeti veya Microsoft Exchange Server 2013 İstemci Erişim sunucusu (CAS) çalıştıran bir Microsoft Exchange Server 2016 sunucusundan exchange server'ın önceki bir sürümüne http isteğine ara sunucu oluşturmaya çalıştığında, kullanıcı aşağıdaki hata iletisini alabilir:

Bu hata (HTTP 400 Hatalı İstek), Internet Explorer'ın web sunucusuna bağlanabildiği, ancak adresle ilgili bir sorun nedeniyle web sayfasının bulunamadığını gösterir.

Ayrıca, Microsoft Exchange Server 2010 veya Microsoft Exchange Server 2007 İstemci Erişimi sunucusundaki HTTPERR günlükleri, kullanıcının istediği HTTP kaynağı için aşağıdakilerden birini gösterebilir:

2014-07-24 16:48:06 192.168.137.113 53335 192.168.137.110 443 HTTP/1.1 GET /owa/ 400 - RequestLength -

2014-07-24 16:48:06 192.168.137.113 53335 192.168.137.110 443 HTTP/1.1 GET /owa/ 400 - FieldLength - 

Ayrıca, Exchange Server 2013 İstemci Erişimi Sunucusundaki Exchange Server <Exchange Server Yükleme Yolu>\Günlüğe Kaydetme\HttpProxy\<Http kaynakları> günlüklerinde aşağıdakileri görebilirsiniz:

2014-07-24T16:56:17.806Z,ddf5379e-4a97-4833-b331-36328b9f8b58,15,0,913,7,,Owa,outlook.Wingtiptoys.com,/owa/,,Negotiate,True,WINGTIPTOYS\user003,,Sid~S-1-5-21-3205615561-4199783494-2467053687-1128,Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET4.0C; .NET4.0E; .NET CLR 3.5.30729; .NET CLR 3.0.30729),192.168.137.113,WINGTIP-E2K13,400,400,,GET,Proxy,wingtip-e2k10.wingtiptoys.com,14.03.0123.000,IntraForest,WindowsIdentity-ServerCookie,Server~WINGTIP-E2K10.Wingtiptoys.com~1937997947~07/24/2014 17:01:18,,,0,342,1,,4,14,,0,,0,,0,0,,0,46.8744,0,,,,18,0,1,0,0,1,38,1,20,20,20,24,43,,,BeginRequest=2014-07-24T16:56:17.759Z;CorrelationID=<empty>;ProxyState-Run=None;ProxyToDownLevel=True;BeginGetResponse=2014-07-24T16:56:17.791Z;OnResponseReady=2014-07-24T16:56:17.806Z;EndGetResponse=2014-07-24T16:56:17.806Z;ProxyState-Complete=ProxyResponseData;EndRequest=2014-07-24T16:56:17.806Z;,WebExceptionStatus=ProtocolError;ResponseStatusCode=400;WebException=System.Net.WebException: The remote server returned an error: (400) Bad Request. at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at Microsoft.Exchange.HttpProxy.ProxyRequestHandler.<>c__DisplayClass2a.<OnResponseReady>b__28();  

Neden

Bu sorun, kullanıcı birçok Active Directory grubunun üyesiyse oluşabilir. Bu sorun, Exchange Server 2016 veya Exchange Server 2013 CAS'den Exchange Server 2010 CAS'ye ara sunucu işlemi sırasında oluşabilir.

Çözüm

Bu sorunu gidermek için aşağıdaki yöntemlerden birini kullanın:

  • Kullanıcıya atanan Active Directory gruplarının sayısını azaltın.

  • Her Exchange 2010 CAS'de aşağıdaki alt anahtarı bulun:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

  • Bu alt anahtar altında, aşağıdaki tabloda yer alan değerleri kullanarak MaxFieldLength ve MaxRequestBytes girdilerini artırın.

    Değer adı Değer türü Değer verisi Değer tabanı
    MaksimumAlanUzunluğu DWORD - 32 bitlik sayı 65536 Ondalık
    Maksimum İstek Bayt (MaxRequestBytes) DWORD - 32 bitlik sayı 65536 Ondalık

    Notlar

    • Bu değişiklik CAS'nin yeniden başlatılmasını gerektirir.
    • MaxFieldLength ve MaxRequestBytes için girdiler yoksa, girişleri el ile oluşturun.

Daha Fazla Bilgi

Önemli

Bu kayıt defteri anahtarlarını değiştirmek son derece tehlikeli olabilir. Değerlerin artırılması IIS'ye daha büyük HTTP paketleri gönderilmesine olanak tanır ve bu da Http.sys daha fazla bellek kullanmasına neden olabilir ve kötü amaçlı saldırılara karşı güvenlik açığını artırabilir.

  • Exchange Server birlikte var olması için önerilen değer 65536'dır.

    Not

    Değer Exchange Server için 65536 olmalıdır. KB 2020943'de belirtildiği gibi 65534 olmamalıdır. Bu ayar Internet Information Services (IIS) içindir. Bu farkın nedeni, Exchange Server için ek gereksinimlerdir.

  • Bazı durumlarda , MaxFieldLength değeri 65536 sorunu çözemeyebilir. Bu durumda, değeri artırmak yerine grupları kaldırarak kullanıcının erişim belirtecinin boyutunu azaltmanızı öneririz.

  • MaxRequestBytes değerini 65536'dan büyük olacak şekilde artırmanın riskleri vardır. Bu nedenle, bunu yapmanızı önermeyiz. Bu riskler KB 820129 ayrıntılı olarak ele alınıyor. Bu anahtara, varsayılan değeri değiştirme riskinin yüksek olduğunu göstermek için 1 uyarı kodu atanır.