Причиной проблемы является то, что ServiceDescriptionImporter, который используется для генерации прокси для старых веб-служб Xml (ASMX), предположил, что ему предоставлен «плоский» документ wsdl.Это означает, что все документы описания услуг находятся в одном документе WSDL.Вам нужно добавить поведение в службу WCF, на которую вы нацелены, чтобы сгенерировать корректный wsdl для работы вашего кода.Есть несколько статей о том, как генерировать плоский wsdl, но этот один должен помочь вам начать.
РЕДАКТИРОВАТЬ (для суммирования комментариев в чате): Если у вас нет контроля над службой WCF иЕсли вы все еще хотите использовать эту технику для динамической генерации прокси, тогда вам нужно написать код, который анализирует wsdl, чтобы заменить элементы xsd: import на документы XSD, на которые указывает url в элементе import.Класс HttpWebRequest .NET Framework можно использовать для получения wsdl из службы, вызывая конечную точку метаданных службы, как если бы она была «веб-страницей».
Анализ wsdl с использованием вашего любимого класса XML (XmlDocument илиXDocument), чтобы найти элементы импорта и выноску для "веб-страниц" XSD со значением в атрибуте schemaLocation.Вам не нужно вносить какие-либо изменения в XSD XML, за исключением удаления директивы XML, которая будет включена в содержимое «страницы».Наконец, передайте сплющенный wsdl в ServiceDescriptionImporter.