#c# #.net #wpf #wcf
#c# #.net #wpf #wcf
Вопрос:
Существует asp.net основанный сервер, где я использую службы wcf для связи с клиентом, который является приложением WPF. Когда данные возвращаются с сервера и во время десериализации, возникает исключение связи. Вот исключение:
Выдано исключение: ‘System.ServiceModel.Исключение CommunicationException’ в mscorlib.dll
Дополнительная информация: Ошибка при десериализации тела ответного сообщения для операции ‘AutoImportGetProtokolls’. Источник входных данных неправильно отформатирован.
Источник:http://pastebin.com/ZtUxYNUm
Вот фотография об исключении:https://www.dropbox.com/s/5araq9oajhrhrty/communicationexception.png?dl=0
У меня есть другое приложение, основанное на silverlight, и когда я вызываю ту же службу, исключение не приходит. После запуска приложения WPF исключение возникает каждый раз при первом вызове службы, после этого оно возникает «случайным образом» (я не смог найти никакой логики, когда)
Что я пробовал до сих пор, но не помогло:
-Я использовал класс DTO (объект передачи данных) вместо класса, созданного entity framework. (sp_AutoImport_GetProtokolls_Result)
— Удален параметр «out ErrorCustomModel res» из службы.
-Многие источники в Google сказали, что я должен взглянуть на webconfing и увеличить значение свойства readerquotas. Вот соответствующая часть webconfig: pastebin.com/e4ZpQsMK
Спасибо, ребята, приветствуются все подсказки.
С наилучшими пожеланиями, Норберт
Комментарии:
1. Я не уверен, что это так, потому что вы мало говорите о своем сервисном приложении, но в прошлом у меня была похожая проблема в приложении http client server из-за форматирования сериализации, в нашем случае это был объект, сериализованный в XML, процесс сериализации добавил спецификацию в начало строки, которая используется file based data exchange для распознавания типа кодировки (например, notepad использует спецификацию для распознавания содержимого файла) в любом случае, . Net serializer имеет опцию сериализации без спецификации, которую мы использовали для устранения проблемы. Вы должны попробовать