我正在写一个IHttpHandler的实现,将收到通过从其他网站一个普通的HTTP POST发送XML数据。 这里有一个原型的执行情况:通过HTTP POST发送XML数据的IHttpHandler导致HttpRequestValidationException
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。 我试图在web.config中使用
<pages validateRequest="false">
,和使验证=“假”,在处理程序声明属性在httpHandles部分,没有结果。
我如何读取XML贴在我的处理程序? (请注意,我必须使用IHttpHandler完成此任务)。
编辑:框架版本:4.0,IIS 7.x
谢谢大家! :)
喜马蒂亚斯,感谢您的回答。请注意,我无法控制处理程序将收到的数据,我发布的页面只是一个测试示例。我必须假定xml数据将不带编码,这是基于将在生产环境中发送数据的系统文档。 – 2011-01-20 10:50:40