Я нашел ответы в Что означает эта ошибка WCF: «Предупреждение о пользовательском инструменте: невозможно импортировать справку wsdl: portType» . В моем случае я выбрал снятие флажка «Повторное использование типов», и это решило проблему.
Дополнительные мысли: SOA, Распределенные объекты и & amp; Связывание
Видение «Сервис-ориентированное», подразумеваемое стандартами WSDL и WS- *, заключается в том, что сам WSDL сообщает вашему клиенту все, что вам нужно знать, использовать сервис. С этой точки зрения снятие флажка «Повторное использование типов» является правильным подходом. Вы не должны повторно использовать типы откуда угодно, кроме wsdl.
Установка флажка «типы повторного использования» является скорее подходом «распределенных объектов»: ваш клиент и служба становятся связанными через типы в совместно используемой dll. Это сильная распределенная зависимость. Если общие объекты обновляются, служба и все ее клиенты должны быть обновлены, все синхронизированы друг с другом. Это одна из причин, по которой распределенные объекты сильно потеряли популярность, и SOA взяла верх.
Если ваша компания не выбрала (возможно, случайно, путем совместного использования библиотек в ленте Nuget) архитектуру распределенных объектов и не поняла бы стоимость, я бы всегда снимал флажки для типов повторного использования.
Это уменьшает сцепление.
Просто добавьте это на страницу вверху:
<%="" %>
... Теперь мой заполнитель содержимого ASP.Net начинается так:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<%="" %>
Цитата из: Михаил Архипов ( MSFT) WebLog
Чтобы обеспечить intellisense в блоках <% =%> во время разработки, ASP.NET генерирует присвоение временной переменной __o и языку (VB или C #), а затем предоставляет intellisense для переменной, когда вы введите в блоке <% =%>, аналогично тому, что происходит при вводе x =.
Это подробно обсуждалось на форумах ASP.NET . Вы сможете найти ответ в связанной теме.