«Клиенту не удалось получить метаданные службы. Убедитесь, что служба запущена и предоставляет метаданные», эта ошибка возникает в .net 2008 при выполнении приложения wcf. Я использовал шаблон библиотеки сервиса wcf? В чем причина ошибки? Должен ли для этого IIS?





Он должен разрешать анонимный доступ и публиковать конечную точку «mex». Если (в качестве временной меры) вы разместите службу в IIS и перейдете в .svc, он предоставит вам подробные инструкции о том, как опубликовать «mex».
Или просто запустите чистый проект WCF, чтобы получить эту информацию.
Меня это тоже беспокоило, но я думаю, что исправил, если не решил.
Быстрый ответ: Исключить из проекта все файлы .cs, не связанные с самой службой. Особенно юнит-тесты должны быть в отдельном проекте.
Что я пробовал?
Сначала я попытался проверить пространства имен в соответствии с Сообщение в блоге Джули Лерман. Это не помогло.
Во-вторых, я создал новый проект WCF и скопировал исходный код по частям. Все работало нормально, пока я не добавил CS-файл тестового примера nunit и не получил ошибку. Я изменил пространство имен тестового класса, но это не помогло. Я попытался убрать тестовые методы, но даже пустой тестовый класс вызвал ошибку.
Наконец, я исключил тестовые примеры из исходного проекта, и это тоже сработало.
Я предполагаю, что здесь что-то сбивает с толку генерацию метаданных.
Сначала вы должны включить публикацию метаданных на стороне сервера.
Видеть:
Вы можете предоставить либо WSDL, либо MEX, либо и то, и другое.
В противном случае вы должны заранее поделиться метаданными, то есть использовать один и тот же интерфейс с обеих сторон сети.