Исключение проверки 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 будет менее защищен и менее стабилен для внешних атак.