Как вернуть XML в поток ответа? - PullRequest
1 голос
/ 10 ноября 2010

Я пытаюсь вернуть строку XML из IHttpHandler примерно так:

context.Response.Write(xml);

Когда я получаю ответ в своем .aspx.cs, я пытаюсь загрузить документ следующим образом:

var xml = XDocument.Load(xmlString);

но я получаю сообщение об ошибке Illegal Characters in Path.

Я тоже пробовал

context.Response.Write(context.Server.HtmlEncode(xml));

и

var xml = XDocument.Load(Server.HtmlDecode(xmlString));

но я получаю то же сообщение. Можно ли как-нибудь вернуть XML из моего IHttpHandler?

Ответы [ 3 ]

4 голосов
/ 10 ноября 2010

замените это:

var xml = XDocument.Load(xmlString);

на это:

var xml = XDocument.Parse(xmlString);
1 голос
/ 10 ноября 2010

Попробуйте установить context.Response.ContentType = "application/xml"

Очевидно, также убедитесь, что XML правильно сформирован, MSDN имеет пример возврата XML из обработчика HTTP.

Попробуйте поместить XML в валидатор (или открыть в браузере), чтобы выделить любые проблемы.

1 голос
/ 10 ноября 2010

XDocument.Load (String) принимает путь к файлу. Вы хотите использовать одну из перегрузок, которая принимает объект Reader.

...