У меня есть веб-действие ASP.NET MVC, которое возвращает простой zip-файл. Свойство Responce.ContentType устанавливается вручную в «text/xml; charset = utf-8; gzip». Это значение заголовка задается перед записью содержимого ответа в выходной поток. Веб-проект размещен на хосте Windows Azure. Проблема в том, что иногда сервер возвращает ответ с отсутствием заголовка ContentType, это вызывает проблемы на стороне клиента. Не имея представления о том, что может быть причиной этого. Когда я запускаю один и тот же веб-проект локально - все работает нормально, поле ContentType имеет правильное значение. Пример кода веб-кода:ContentType HTTP-заголовок отсутствует в ответе сервера
public void GetData()
{
Response.ContentType = "text/xml; charset=utf-8; gzip";
XDocument xml = new XDocument(...);//some large XML file
byte[] byteData = Encoding.UTF8.GetBytes(xml.ToString());
Stream outputStream = Response.OutputStream;
GZipStream compressedzipStream = new GZipStream(outputStream, CompressionMode.Compress);
compressedzipStream.Write(byteData, 0, byteData.Length);
compressedzipStream.Close();
}
Любая помощь будет очень признательна.
У меня есть какая-то логика на стороне клиента, которая зависит от значение ContentType. Спасибо за ваше предложение, я попробую. –
@ Сэм. Шеховцов, ОК. В этом случае это имеет смысл. Но почему бы не придерживаться стандартного HTTP-протокола, который уже предоставляет механизм для указания сжатого ответа? –