Я пишу реализацию IHttpHandler, которая будет получать данные XML, отправленные через обычный HTTP POST с другого веб-сайта.
Вот прототип реализации:
public class MyHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string s = context.Request.Form["input"]; // <== this throws HttpRequestValidationException
XmlDocument doc = new XmlDocument();
doc.LoadXml(s);
// ...
}
public bool IsReusable
{
get { return false; }
}
}
Я тестирую реализацию на этой простой странице:
<body>
<form method="post" action="MPSConnector.Results.dsvc">
<textarea name="input"></textarea>
<input type="submit" value="Go!" />
</form>
</body>
Проблема в том, что когда я пытаюсь прочитать значение «input» из опубликованных данных, если оно содержит строку xml, все, что я получаю, это HttpRequestValidationException.
Я пытался использовать
<pages validateRequest="false">
в web.config и добавление атрибута validate = "false" в объявление обработчика в разделе httpHandles без результатов.
Как я могу прочитать опубликованный xml в моем обработчике? (обратите внимание, что я должен использовать IHttpHandler для этой задачи).
РЕДАКТИРОВАТЬ: Версия платформы: 4.0, IIS 7.x
Спасибо всем! :)