Я решил это. Прежде чем сделать что-либо из этого, я использую System.Net.Http.HttpClient
для опроса URL-адреса конечной точки и обновления URL-адреса
URL = (Await (New Net.Http.HttpClient()).GetAsync(URL)).RequestMessage.RequestUri.ToString
Какой браузер Вы используете? Существует ошибка в IE 6, который вызывает ошибки в сжатии. Таким образом, Ajax ASP.NET выключает сжатие к IE 6 браузеров:
http://weblogs.asp.net/scottgu/archive/2005/06/28/416185.aspx
Кроме того, Вы включали сжатие для файлов ASMX?
IIS7 использует довольное кодирование, чтобы решить, сжать ли ответ (предполагающий, конечно, что браузер может принять gzip). Они установлены в applicationHost.config, и по умолчанию список
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
При вызове веб-сервиса непосредственно ответ XML имеет тип контента text/xml
, который сжат. При вызове Ajax ответ JSON имеет тип контента application/json
, таким образом, это не сжато. Добавление следующего к applicationHost.config должно зафиксировать это...
<add mimeType="application/json" enabled="true" />
В последний раз я проверил, gzipping был чем-то, что IIS делает (когда установка правильно) - и конечно когда браузер отправляет необходимые заголовки
В целом Вы не хотите делать это, если Вы не возражали бы бросать заказы величин количество энергии сервера в Ваши приложения...
Также не только ЦП сервера, но также и клиентский ЦП становятся проблемой, когда Вы делаете это....
Это завершает, с которым Ваше приложение становится ПУТЕМ медленнее если Вы GZip все Ваши Ответы Ajax...!