我正在编写一个 IHttpHandler 实现,它将接收通过来自另一个网站的常规 HTTP POST 发送的 XML 数据。这是实现的原型:
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>
问题是当我尝试从发布的数据中读取“输入”值时,如果它包含一个 xml 字符串,我得到的只是一个 HttpRequestValidationException。我尝试使用
<pages validateRequest="false">
在 web.config 中,并将 validate="false" 属性放在 httpHandles 部分的处理程序声明中,没有结果。
如何在我的处理程序中读取发布的 xml?(请注意,我必须为此任务使用 IHttpHandler)。
编辑:框架版本:4.0,IIS 7.x
谢谢你们!:)