powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / SOAP ошибка передачи файлов
6 сообщений из 6, страница 1 из 1
SOAP ошибка передачи файлов
    #39545503
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Товарищи помогите понять в чем причина.
Есть сервис на стороне "заказчика" SOAP
Мне нужно передать им файлы.
Вот объявление метода заказчика в сервисе
Код: c#
1.
.attachFilesResponse attachFiles(attachFiles request);



Т.е. мне надо передать файлы
Код: c#
1.
port.attachFiles(new attachFiles(claimID, files, null));



в files у меня файлы соответственно
Вот описание свойства файла Data
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary", Order=7)]
        public byte[] Data {
            get {
                return this.dataField;
            }
            set {
                this.dataField = value;
                this.RaisePropertyChanged("Data");
            }
        }



Т.е. это байты в классе File
Я должен записать туда именно байты файла своего.
Код: c#
1.
DataType="base64Binary"

это видимо говорит о том, что эти байты конвертнутся в строку base64 при передаче в соап.
Но у меня ошибка.
Вот код мой для передачи файлов

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
var fi = new System.IO.FileInfo(dirfiles[i]);
               var bytes = System.IO.File.ReadAllBytes(fi.FullName);
                files[i] = new File()
                {
                    FileName = fi.Name,
                    FileType = type,
                    AddedDateTime = DateTime.Now,
                    Data = bytes
                };



У меня выпадает ошибка
Код: sql
1.
ОШИБКА: неверная последовательность байт для кодировки "UTF8": 0x00


Вот полная, не перекодированная
Код: c#
1.
2.
3.
An unhandled exception of type 'System.ServiceModel.ProtocolException' occurred in mscorlib.dll

Additional information: Тип содержимого text/xml;charset=iso-8859-1 ответного сообщения не соответствует типу содержимого привязки (multipart/related; type="application/xop+xml"). При использовании особого кодировщика необходимо правильно реализовать метод IsContentTypeSupported. Первые 550 байтов ответного сообщения: "<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>&#x41e;&#x428;&#x418;&#x411;&#x41a;&#x410;: &#x43d;&#x435;&#x432;&#x435;&#x440;&#x43d;&#x430;&#x44f; &#x43f;&#x43e;&#x441;&#x43b;&#x435;&#x434;&#x43e;&#x432;&#x430;&#x442;&#x435;&#x43b;&#x44c;&#x43d;&#x43e;&#x441;&#x442;&#x44c; &#x431;&#x430;&#x439;&#x442; &#x434;&#x43b;&#x44f; &#x43a;&#x43e;&#x434;&#x438;&#x440;&#x43e;&#x432;&#x43a;&#x438; "UTF8": 0x00</faultstring></soap:Fault></soap:Body></soap:Envelope>".



Я пробовал получить файл в кодировке UTF8 уже. Не помогло та же самая ошибка.

Потом попробовал конвернуть эти байты в base64 а их обратно в байты уже через Encoding.GetBytes. Это помогло! Байты ушли! Но заказчик при скачивании файла естесственно не может открыть этот файл.

Я уже не знаю что делать. Заказчики отказываются чем либо помогать. Кто сталкивался с этим? Может что-то в настройках надо мне надо указать самого soap?
...
Рейтинг: 0 / 0
SOAP ошибка передачи файлов
    #39545513
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И я даже уже пробовал с помощью BinaryReader прочитать побайтно каждый байт в UTF-8 )))) но увы та же самая ошибка...
...
Рейтинг: 0 / 0
SOAP ошибка передачи файлов
    #39545523
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Khusainov_Heckfy, а так Encoding.UTF8.GetBytes(File.ReadAllText(fi.FullName)) и таки BOM?
...
Рейтинг: 0 / 0
SOAP ошибка передачи файлов
    #39545533
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buser,

нет увы, я так тоже пробовал уже
И сейчас снова попробовал и не получилось
...
Рейтинг: 0 / 0
SOAP ошибка передачи файлов
    #39545535
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а все данные гоняет нормально туда сюда, тексты даты что угодно но не файлы
...
Рейтинг: 0 / 0
SOAP ошибка передачи файлов
    #39546492
Фотография Khusainov_Heckfy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно закрыть тему, разобрались.

Кому интересно:

soap генерил не верный класс для File
Надо было просто убрать

Код: c#
1.
DataType="base64Binary



Заменить типа Data на
Код: c#
1.
string



И передать строку
Код: c#
1.
base4 



Все заработало.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / SOAP ошибка передачи файлов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]