Исключение проверки HTTP-запроса в веб-службе ASP.NET в Ubuntu с Mono

Прежде всего, я совершенно новичок в Linux Os и Mono.

Я предпринял все шаги из следующего поста, чтобы запустить мой сервис Web API с Mono в Linux Ubuntu:

http://piotrwalat.net/running-asp-net-web-api-services-under-linux-and-os-x/

Теперь я могу запустить свой веб-сервис в Ubuntu из localhost:5757, но когда я выполняю метод, я получаю System.Web.HttpRequestValidationException:

A potentially dangerous Request.QueryString value was detected from the client 

Это мой метод испытаний:

[WebMethod]
public string Test(string strXML)
{
    string strMessage = "";
    XmlDocument xdoc = new XmlDocument();
    try
    {
        xdoc.LoadXml(strXML);

        XmlNode xContent = xdoc.GetElementsByTagName("content")[0];
        strMessage = xContent.InnerText;
    }
    catch (Exception ex)
    {
        csGlobal.ErrorLog(ex.Message + " " + ex.StackTrace);
    }

    return strMessage;
}

Это входное XML-сообщение, которое я хочу проверить:

<data><content>some content</content></data>

Он отлично работает в IIS с Windows. Но как я могу заставить его работать с Mono в Linux?

ОБНОВИТЬ:

.NET версия 3.5, и я добавил <pages validateRequest="false" /> в моем файле web.config, но все равно получаю ту же ошибку.

Что вы предлагаете мне сделать???

1 ответ

Решение

Измените версию.Net Framework вашего Web API на 4.0 и включите следующее в ваш web.config:

<httpRuntime requestValidationMode="2.0"/>

Это должно помочь. Но учтите, что в этом случае ваш API будет менее защищен и менее стабилен для внешних атак.

Другие вопросы по тегам