Я также столкнулся с подобной ошибкой при попытке создать клиент для веб-службы из проекта ASP .Net MVC 4.0 с использованием Visual Studio 2012.
Кажется, корень проблемы в том, что проект, из которого я пытался сгенерировать клиент, ссылался на сборку, которая, в свою очередь, зависела от другой сборки, на которую также не ссылались.
Когда в конфигурации службы включено «Повторное использование типов в ссылочных сборках», генератор службы, вероятно, проверяет все ссылочные сборки, чтобы получить список типов, которые можно использовать повторно. Тот факт, что одна из ссылочных сборок ссылается на другую сборку, которая недоступна, вероятно, вызывает сбой генератора.
Снятие отметки «Повторное использование типов в ссылочных сборках» из конфигураций службы решит вышеуказанную проблему , но у нее есть побочный эффект. Опция повторного использования типов существует по причине , и в некоторых случаях она позволяет избежать ненужного преобразования в коде, потребляющем службу.
Например, если сама служба построена с использованием WCF и параметры некоторых методов внутри нее имеют тип System.Guid, они будут преобразованы в строки в сгенерированном клиенте, если опция повторного использования типов отключена.
Альтернативой, которую я предпочитаю отключению повторного использования типов, является добавление ссылки на службу из проекта библиотеки классов, специально созданного для этой цели. Следует помнить одну вещь: скопировать все связанные со службой конфигурации из файла app.config библиотеки классов в файл конфигурации запускаемого проекта.
Если в локальных сборках определены типы, которые необходимо повторно использовать в клиенте службы, то на эти сборки просто необходимо ссылаться из вышеупомянутого проекта библиотеки классов вместе со всеми их зависимостями.