powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Передача файла через web service
9 сообщений из 9, страница 1 из 1
Передача файла через web service
    #39710619
Фотография Alexander63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При передаче файла через сервис, написанный на шарпе, с клиента, написанного на дельфях, получаю следующее сообщение
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
System.Web.Services.Protocols.SoapException: WebRequestUnableToRead ---> System.InvalidOperationException: There is an error in XML document (2, 522). ---> System.FormatException: The string '' is not a valid AllXsd value.
  at System.Xml.Schema.XsdDateTime..ctor (System.String text, System.Xml.Schema.XsdDateTimeFlags kinds) [0x0003a] in <1140eab9e72948548294172a9716416d>:0 
  at System.Xml.XmlConvert.ToDateTime (System.String s, System.Xml.XmlDateTimeSerializationMode dateTimeOption) [0x00000] in <1140eab9e72948548294172a9716416d>:0 
  at System.Xml.Serialization.XmlCustomFormatter.ToDateTime (System.String value) [0x00017] in <1140eab9e72948548294172a9716416d>:0 
  at System.Xml.Serialization.XmlSerializationReader.ToDateTime (System.String value) [0x00000] in <1140eab9e72948548294172a9716416d>:0 
  at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read3_ProcessingData (System.Boolean isNullable, System.Boolean checkType) [0x0020a] in <d710309a74f64119b9c9b98cafa10932>:0 
  at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read9_AddDll () [0x00145] in <d710309a74f64119b9c9b98cafa10932>:0 
  at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer4.Deserialize (System.Xml.Serialization.XmlSerializationReader reader) [0x00000] in <d710309a74f64119b9c9b98cafa10932>:0 
  at System.Xml.Serialization.XmlSerializer.Deserialize (System.Xml.XmlReader xmlReader, System.String encodingStyle, System.Xml.Serialization.XmlDeserializationEvents events) [0x0007f] in <1140eab9e72948548294172a9716416d>:0 
   --- End of inner exception stack trace ---
  at System.Xml.Serialization.XmlSerializer.Deserialize (System.Xml.XmlReader xmlReader, System.String encodingStyle, System.Xml.Serialization.XmlDeserializationEvents events) [0x00139] in <1140eab9e72948548294172a9716416d>:0 
  at System.Xml.Serialization.XmlSerializer.Deserialize (System.Xml.XmlReader xmlReader, System.String encodingStyle) [0x00000] in <1140eab9e72948548294172a9716416d>:0 
  at System.Web.Services.Protocols.SoapServerProtocol.ReadParameters () [0x003e9] in <df933ee897464fb99338a340b9d5761d>:0 
   --- End of inner exception stack trace ---
  at System.Web.Services.Protocols.SoapServerProtocol.ReadParameters () [0x004a7] in <df933ee897464fb99338a340b9d5761d>:0 
  at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest () [0x0014d] in <df933ee897464fb99338a340b9d5761d>:0 



нутром чую, что связано оно с датой, но не могу понять в каком месте. Подтолкните в нужную сторону пожалуйста. Вот вызов сервиса
Код: pascal
1.
Service.AddDll(FUsrname, pd, FarrByte, FResult, FID, FDateLoad);


Предвижу вопрос по FDateLoad - она инициализируется следующим образом
Код: pascal
1.
2.
FDateLoad := TXSDateTime.Create;
    FDateLoad.XSToNative('1900-01-01T00:00:00.000Z');



есть еще дата в структуре pd, но она тоже инициализируется правильной датой. Это видно в отладчике.
...
Рейтинг: 0 / 0
Передача файла через web service
    #39710621
Фотография Alexander63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причем, если передавать клиентом, написанном на шарпе, то все работает без проблем. Но нужен именно клиент дельфовый. Да версия дельфи XE7.
...
Рейтинг: 0 / 0
Передача файла через web service
    #39710622
Фотография Alexander63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот полный вызов сервиса
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Service := GetProcessingDllSvcSoap(True);

        FUsrname := 'хххххххххх';
        FS.Position := 0;

        SetLength(FarrByte, FS.Size);
        FS.Read(FarrByte[0], FS.Size);

        pd.Info.DllName := ExtractFileName(ODDlls.FileName);
        pd.Info.DllVersion := PluginInfo.FileVersion;
        pd.Info.FileSize := FS.Size;
        pd.Desc := PluginInfo.ProductName;
        pd.Info.LastDateModified := DateTimeToXSDateTime(FileDateToDateTime(FileAge(ODDlls.FileName)));

        Service.AddDll(FUsrname, pd, FarrByte, FResult, FID, FDateLoad);
...
Рейтинг: 0 / 0
Передача файла через web service
    #39710625
Eugene New
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander63,
он же вам пишет в каком месте ошибка - пустая строка. Возьмите этот xml файл, откройте и посмотрите, что во второй строке, в 522 символе. Зачем гадать?
...
Рейтинг: 0 / 0
Передача файла через web service
    #39710629
Фотография Alexander63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В том то и дело, что не знаю как получить этот файл. Скорее это не файл, а запрос. Как получить тело запроса я пока не знаю. Буквально месяц этим занимаюсь.
...
Рейтинг: 0 / 0
Передача файла через web service
    #39710857
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander63В том то и дело, что не знаю как получить этот файл. Скорее это не файл, а запрос. Как получить тело запроса я пока не знаю. Буквально месяц этим занимаюсь.
сделайте клиент демку на шарпе с последней версией сервис-клиент.
И отпишитесь тут что связка работает.
После этого можно искать ошибку в дельфях или неверный формат в MS протоколе.
...
Рейтинг: 0 / 0
Передача файла через web service
    #39710858
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander63написанном на шарпе, то все работает без проблем
версия сервиса?
...
Рейтинг: 0 / 0
Передача файла через web service
    #39710870
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander63Это видно в отладчике.в дельфи?
В ветке дельфи не говорят как логировать отправку в сервис?
...
Программка:
Отправка готового SOAP-xml
...
Рейтинг: 0 / 0
Передача файла через web service
    #39711208
Фотография Alexander63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем откликнувшимся огромное спасибо. Разбираюсь понемногу.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Передача файла через web service
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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