Я несколько дней боролся с проблемами с нашими приложениями WPF, и мне интересно, кто-то сталкивался с этим раньше и может помочь? Проблема, похоже, сводится к тому, что клиент генерирует "на лету" сериализатор для обработки типов в этом вызове веб-метода. Когда этот метод вызывается в первый раз (сам веб-сервис уже запущен), он может принимать, например, 8 секунд, последующие вызовы могут принимать, например. 20мс. Процессор в процессе WPF клиента v. Высокий во время этой задержки.
При использовании XmlSerializer существует способ предварительной генерации этих сборок сериализации, используя svcutil. Когда (как мы) используем обычный WCF DataContractSerializer, этот параметр, похоже, не присутствует.
Я хотел бы иметь возможность предварительно сгенерировать эту сборку для всех типов во всех моих контрактах с данными (много) или, альтернативно, заменить этот процесс на пользовательский, который я могу кодировать и передавать данные в бинарный (у нас есть оба конца этого веб-сервиса/клиента, и они оба являются .NET 4). Я уже использовал сжатие BinaryForamtter и GZip, и, хотя это ускоряет передачу данных, он всегда восстанавливается, чтобы XML был де-сериализован каркасом, поэтому эта проблема остается.
Любые идеи?