Я пытаюсь создать службу WCF для приема сообщений от старого веб-сервиса.Я много занимался поиском по этой проблеме, но, похоже, не могу найти ее из-за отсутствия ключевых слов, возможно
Я пытаюсь использовать формат:
----MIME_boundary
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-Id: <thexml.xml>
<?xml version='1.0' encoding='UTF-8'?>
<soap:Envelope
xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<HEAD_LABEL>
<DOCUMENT docID = "1234">
<ATTACHMENTS>
<ATTACHMENT href = "cid:itsme@website.com"/>
</ATTACHMENTS>
</DOCUMENT>
</HEAD_LABEL>
</soap:Body>
</soap:Envelope>
----MIME_boundary
Content-Type: text/xml
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="1234.XML"
Content-Id: <cid:itsme@website.com>
<SOMEXML>
<UNIMPORTANT>GG</UNIMPORTANT>
</SOMXML>
----MIME_boundary--
У меня есть две основные проблемы:
Моя реализация выдает мне эту ошибку при попытке использовать из-за моего использования XmlSerializerFormat.См. Ниже, я не уверен, как использовать другой тип, чтобы иметь жесткую структуру XML, которая мне требуется.
Входные данные не являются допустимой строкой Base-64, поскольку она содержит неосновной 64-символ, болеечем два символа заполнения, или недопустимый символ среди символов заполнения.
В документе XML (8, 51) есть ошибка, которая является моим "ATTACHMENT href =" cid: itsme@website.com"/>"
Как я могу использовать это сообщение с WCF C #?
Как я могу воспроизвести это в SOAPUI или почтальоне, я не могу связать прикрепляемый файл с «Part» внутри атрибута ATTACHMENT.
Что касается моей реализации, то она пытаетсяиспользуйте XmlSerializerFormat, чтобы позволить мне создать мой формат точно такой же, как я ожидаю.Но это ошибка XmlSerializerFormat.ImportWebServices.cs:
namespace SOAPY.WebService
{
[ServiceContract(Namespace = "")]
[XmlSerializerFormat]
public interface IImportWebService
{
[OperationContract]
[XmlSerializerFormat]
[WebInvoke(Method = "POST", UriTemplate = "UploadDoc")]
ResponseBase ReceiveAttachment(Result xmlIN);
}
[DataContract(Namespace = "")]
[MessageContract(IsWrapped = false)]
public class Result
{
[DataMember]
[MessageBodyMember]
[XmlElement("HEAD_LABEL")]
public HeadDoc headDoc { get; set; }
};
[DataContract(Namespace = "")]
public class HeadDoc
{
[DataMember]
[MessageBodyMember]
[XmlElement("DOCUMENT")]
public DocumentType document { get; set; }
}
[DataContract(Namespace = "")]
[MessageContract(IsWrapped = false)]
public class DocumentType
{
[DataMember]
[MessageBodyMember]
[XmlElement("ATTACHMENTS")]
public List<Attach> attachments { get; set; }
}
[DataContract(Namespace = "")]
[MessageContract(IsWrapped = false)]
public class Attach
{
[DataMember]
[MessageBodyMember]
[XmlAttribute("href")]
public byte[] href { get; set; }
}
}
Любая помощь в том, как я могу использовать вложение, подробно описанная мною, как я объяснил, будет очень полезна