WCF вызов через MSMQ ошибочный - PullRequest
0 голосов
/ 16 февраля 2012

Код является тривиальным, поэтому, вместо того, чтобы объяснять, вот соответствующая часть:

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);
  }

Это больше, но остальная часть работает как положено.

Вот проблема: вызов client.Write(string xml) ошибочно в том, удастся ли это.

Некоторые известные факты:

  • Об отладчике или журнале событий никогда не сообщается об ошибках
  • Иногда XML попадает в очередь сообщений, а иногда нет.'t
  • Request.SaveAs(string filepath, bool includeHeaders) вызов всегда завершается успешно, и результирующий файл всегда содержит ожидаемый XML.Это имеет несколько важных последствий:
    • Выполняется вызов WCF.
    • Поскольку строка xml имела ожидаемое значение сразу после неудачного вызова WCF, и присвоение этой переменной происходит толькодо вызова WCF у него должно было быть правильное значение во время вызова.

Существуют некоторые различия в размере сообщения, поэтому я проверяю конфигурацию службыв этом отношении, но прошлый опыт подсказывает мне ожидать исключения, которое выдается, когда полезная нагрузка слишком велика.

Будем благодарны за любые подсказки.

Кроме того, как вы, вероятно, можете увидеть весь смыслУпражнение - это несколько наивная попытка использовать HTTP POST для помещения XML в сообщение в MSMQ.Я был бы совершенно счастлив с ответом типа «Не делай так, делай так, ты, невежественный дикарь».

...