Как получить XML в ASP.NET Web Service? - PullRequest
4 голосов
/ 16 апреля 2011

У меня есть квази-RESTful веб-служба ASP.NET, на которую я хочу иметь возможность публиковать XML. Мой метод выглядит примерно так:

[WebMethod(false, System.EnterpriseServices.TransactionOption.NotSupported)]
public void save(string saveXml)
{
    XDocument saveXml = XDocument.Parse(saveXml);
    ....

Когда я пытаюсь опубликовать в этом веб-сервисе, я получаю исключение:

System.Web.HttpRequestValidationException: A potentially dangerous Request.Form
value was detected from the client...

Основываясь на результатах поиска, я понимаю, что все запросы к страницам ASP.NET выглядят такими символами, как "<", которые считаются опасными (очевидно, это относится к моему XML). Это можно легко отключить для отдельных страниц, но не для веб-служб. Единственное решение, которое я нашел, заключалось в изменении режима проверки запроса в моем web.config на «2.0». Я не хочу переходить на старую версию чего-либо только потому, что мой метод с одним веб-сервисом не работает с версией 4.0. Есть ли способ отключить это для моего конкретного метода? Заранее спасибо. </p>

1 Ответ

4 голосов
/ 16 апреля 2011

Новая модель 4.0 RequestValidation немного сложнее, но пока ваш клиент отправляет заголовок HTTP-запроса Content-type как text/xml вместо application/x-www-form-urlencoded, он должен проходить (или обходить скорее) ASP.NET RequestValidation.

...