Спасибо за ваш ответ. Вчера вечером я обнаружил проблему ... По-видимому, при передаче сообщения с использованием MTOM оно всегда отправляется как составное сообщение. В DLL-библиотеках Microsoft существует жестко заданная граница, которая переключается на составную часть, начиная с 767 байт. Это в XmlMtomWriter.cs. Фрагмент кода:
class XmlMtomWriter : XmlDictionaryWriter, IXmlMtomWriterInitializer
{
// Maximum number of bytes that are inlined as base64 data without being MTOM-optimized as xop:Include
const int MaxInlinedBytes = 767; // 768 will be the first MIMEd length
int maxSizeInBytes;
XmlDictionaryWriter writer;
XmlDictionaryWriter infosetWriter;
MimeWriter mimeWriter;
Это значение жестко закодировано и не может быть перезаписано, если вы не создадите собственную фабрику сериализации.
В моем случае проблема не была проблемой ... На стороне сервера была ошибка в их коде проверки, который предполагал, что это должен быть «ОДИН формат» в случае отправки вложения.
Переконфигурировав их конец, я смог обойти их ошибку и теперь все работает как ожидалось.
На стороне сервера был XDSToolkit (XDSTools).
Это не было проблемой безопасности, так как связь прошла успешно.
Спасибо за ваш ответ и время.