0

首先,我对 Linux Os 和 Mono 也完全陌生。

我已经采取了以下帖子中的所有步骤,在 Linux Ubuntu 上使用 Mono 运行我的 Web API 服务:

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

现在我可以在 Ubuntu 上运行我的 Web 服务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>

它在带有 Windows 的 IIS 中完美运行。但是我怎样才能让它在 Linux 上与 Mono 一起工作呢?

更新:

.NET 版本是 3.5,我<pages validateRequest="false" />在 web.config 文件中添加了,但仍然出现相同的错误。

你建议我做什么???

4

1 回答 1

0

将您的 Web API 的 .Net Framework 版本更改为4.0并在您的 中包含以下内容web.config

<httpRuntime requestValidationMode="2.0"/>

这应该会有所帮助。但请注意,在这种情况下,您的 API 将受到较少的保护并且对于外部攻击不太稳定。

于 2014-11-11T04:44:03.340 回答