代码是微不足道的,而不是解释,这里是相关部分:
protected void Page_Load(object sender, EventArgs e)
{
if ((Request.HttpMethod == "POST") && (Request.ContentType == "text/xml"))
{
string filename = string.Format("{0:yyyyMMddHHmmss}.xml", DateTime.UtcNow);
var path = Path.Combine(Request.MapPath("Chapters"), Request.Headers["X-MAC"]);
Directory.CreateDirectory(path);
string xml;
using (ChapterWriterClient client = new ChapterWriterClient())
using (StreamReader sr = new StreamReader(Request.InputStream))
{
xml = sr.ReadToEnd();
client.Write(xml);
System.Diagnostics.Trace.TraceInformation(xml);
}
Request.SaveAs(Path.Combine(path, filename), false);
}
还有更多,但其余部分按预期工作。
问题在于:呼叫{{1}}是否成功是不稳定的。
一些已知的事实:
client.Write(string xml)
调用始终成功,生成的文件始终包含预期的XML。这有几个重要的含义:
Request.SaveAs(string filepath, bool includeHeaders)
在失败的WCF调用之后立即具有期望值,并且仅在WCF调用之前发生对此变量的赋值,所以它在调用时必须具有正确的值。 / LI>
邮件大小存在一些差异,因此我在这方面检查服务配置,但过去的经验告诉我,当有效负载过大时会发生异常抛出。
任何线索都会受到赞赏。
此外,您可能会看到练习的重点是尝试使用HTTP POST将某些XML放入MSMQ上的消息中。我会非常高兴,不要那样做,就像这样做你无知的野蛮人"输入答案。