Использование составного MIME-объекта из сообщения SOAP в WCF C # - PullRequest
0 голосов
/ 12 июня 2018

У меня было много проблем с запуском этого в c #, и поиск в Google не сработал, как я надеялся.

Проблема в том, что я получаю этот сигнал MTOM как объект Stream.Он состоит из 2 частей.XML и байт [] - это ZIP-файл, который мне нужно сохранить на диск.Кто-нибудь знает хороший способ сделать это?

Я пробовал MimeKit, MimeMessage, MimeEntity и несколько других менее известных библиотек, и мне не повезло, интерпретируя мой поток с этими пакетами.

Вот поток при печати в виде строки:

----MIME_boundary
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
Content-Transfer-Encoding: 8bit
Content-Id: <start.xml>

<?xml version='1.0' encoding='UTF-8' ?>
  <soap:Envelope
    xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xop = "http://www.w3.org/2004/08/xop/include"
  >
    <soap:Body>
      <COMPANYDOC>
        <COMPANYNET_INFO
          transactionId = "00486KZ"
        >
          <ATTACHMENTS>
            <ATTACHMENT>
              <xop:Include
                href = "cid:70049@COMPANY.com"
              />
            </ATTACHMENT>
          </ATTACHMENTS>
        </COMPANYNET_INFO>
      </COMPANYDOC>
    </soap:Body>
  </soap:Envelope>
----MIME_boundary
Content-Type: application/zip
Content-Transfer-Encoding: binary
Content-Disposition: attachment; filename="COMPANYDOC.ZIP"
Content-Id: <70049@COMPANY.com>

PK

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

var mpp = new MultipartParser(HttpContext.Current.Request.InputStream);

Дает мне, что StartIndex не может быть меньше нуля

MimeKit.MimeEntity mime = MimeKit.MimeEntity.Load(HttpContext.Current.Request.InputStream);

Он просто создает новый mimeEntity с типом содержимого: text / xml, и в нем нет разделенного заголовка MIME..

C # Multipart Mime объект Это именно то, что мне нужно, но его ссылки больше не работают

Так что мой вопрос, как я могу разобрать этот multipartMTOM сообщение в C # и в конце дня получите вложение ZIP (это все, что меня действительно волнует)?

Любая помощь будет принята с благодарностью.

Спасибо за чтение!

...