C # Ashx Ошибка генерации карты сайта Google xml - PullRequest
0 голосов
/ 19 декабря 2010

Я использую Ashx для доставки карты своего сайта для Google.До недавнего времени все работало отлично.

При запросе карты сайта в Google на http://www.naughtyfancydress.com/sitemap.ashx я получаю: Ошибка синтаксического анализа XML: не правильно сформировано Расположение: http://naughtyfancydress.com/sitemap.ashx Строка № 1,Колонка 1: `I�% & / m� {J�

Мой урезанный код в ashx выглядит следующим образом:

context.Response.ClearHeaders();
context.Response.ClearContent();
context.Response.ContentType = "text/xml";
context.Response.ContentEncoding = Encoding.UTF8;
context.Response.Cache.SetExpires(DateTime.Now.AddSeconds(3600));
context.Response.Cache.SetCacheability(HttpCacheability.Public);

var writer = new XmlTextWriter(context.Response.OutputStream, Encoding.UTF8);
writer.Formatting = Formatting.Indented;

writer.WriteStartDocument();
writer.WriteStartElement("urlset");
writer.WriteAttributeString("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
writer.WriteAttributeString("xsi:schemaLocation", "http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd");
writer.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");

writer.WriteStartElement("url");
writer.WriteElementString("loc", "http://www.naughtyfancydress.com/");
writer.WriteElementString("changefreq", "daily");
writer.WriteElementString("priority", "1.0");
writer.WriteEndElement();

writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();

Любые идеи о том, как решить, приветствуются.

РЕДАКТИРОВАТЬ: если вы проверите ссылку выше в Chrome, ничего не отображается, я думаю, что это проблема Chrome, пожалуйста, проверьте ссылку с FireFox.

1 Ответ

0 голосов
/ 21 декабря 2010

Для всех остальных проблема заключалась в том, что в Global.asax, в методе Application_PreRequestHandlerExecute, я был gzip'ом в моем контенте.

Это, очевидно, меняет кодировку содержимого на gzip с utf-8, даже если это было указано выше. Это исправление, убедитесь, что обработчик карты сайта не отправляет контент в формате gzip.

...