У меня есть небольшой веб-сервис WCF, работающий со встроенным сервисным хостом WCF и хостингом с помощью встроенного веб-сервера разработки Visual Studio 2008.
В этих средах хостинга я использовал тестовый клиент WCF для вызова методов сервиса.
Теперь у меня проблемы с моим следующим этапом тестирования:
Он размещен в IIS 5.1 на моем компьютере с WinXP, и я думаю, что, возможно, проблема в том, что я больше не могу использовать тестовый клиент WCF. Вот что происходит:
Случай 1: «Анонимный доступ» ПРОВЕРЕН (ВКЛЮЧЕН)
Пользовательский интерфейс WCF Test Client запускается правильно, открывая WebMethods и кнопку INVOKE.
Тем не менее, когда я нажимаю INVOKE, он не может соединиться с внутренним хранилищем данных (сторонним продуктом), для которого требуется проверка подлинности Windows. Я мог бы опубликовать ошибку, которую я получил от product.DLL, но я не думаю, что это актуально.
Случай 2: «Анонимный доступ» НЕ ПРОВЕРЕН (ОТКЛЮЧЕН)
Пользовательский интерфейс WCF Test Client не может даже правильно инициализироваться. Мои исследования показывают, что MEX (WS-Metadata Exchange) требует «анонимного доступа», а (очевидно) WCF Test Client требует MEX. Вот ключевые фрагменты возвращаемой ошибки:
Error: Cannot obtain Metadata from http://localhost/wcfiishost
The remote server returned an error: (401) Unauthorized.HTTP GET Error
URI: http://localhost/wcfiishost
There was an error downloading 'http://localhost/wcfiishost'.
The request failed with the error message:
Security settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service
Существует множество объяснений вариантов привязки, безопасности сообщений и т. Д., И, честно говоря, не понимаю. Вот мое мнение о том, где я нахожусь, но я хотел бы услышать ваше мнение:
(a) Поскольку я знаю, что мой веб-сервис WCF ДОЛЖЕН быть настроен на использование аутентификации Windows, я заключаю, что не могу продолжать использовать тестовый клиент WCF при размещении моей службы в IIS. То, что это эффективно пережило это, полезно для меня. Мне просто нужно время, чтобы написать веб-клиент, потому что WCFTestClient не будет работать без Anonymous.
(или)
(b) Можно использовать тестовый клиент WCF, если он и размещенная служба настроены правильно (я просто не знаю, какие специальные методы настройки для этого используются).
Что правильно? Время прекратить использовать WCFTestClient или есть способ сделать это обоими способами? Заранее спасибо за совет.
РЕДАКТИРОВАТЬ: 11 июня 09
Есть ли что-нибудь еще, что я могу предоставить, чтобы помочь кому-то еще помочь мне в этом вопросе?