Служба WCF 404 по адресу настраиваемой конечной точки - PullRequest
1 голос
/ 02 мая 2011

Я могу просмотреть URL-адрес веб-службы, и он хорошо отображается в браузере.

Я могу получить ?wsdl из веб-браузера.

Когда я получаю доступ к сервису, я получаю 404 (фидлер говорит: HTTP / 1.1 404 Not Found)

. * .Svclog записывается, когда я получаю доступ к адресу через браузер, но не когда я получаю к нему доступ через мыльный клиент.

using (ImportServiceClient client = 
    new ImportServiceClient("ImportServiceSoap12", REMOTE_ADDRESS))
{

Я пробовал baseAddresses и WCFExtras wsdlExtensions. Все тот же 404. Я смотрю на это: http://www.jamesgoodfellow.com/blog/post/IIS-60---HTTP-404---File-not-found-Internet-Information-Services.aspx, но, поскольку это XP, этой папки не существует, она работает в веб-браузере и генерируется * .svclog.

Тестовый компьютер, на котором я пытаюсь запустить эту систему, - это XP. Доступ к компьютеру осуществляется по адресу без IP-адреса.

До WCF я решил эту проблему с помощью, но я не могу найти решение в WCF.

UPDATE

При выполнении «Настроить ссылку на службу» для этой конечной точки я мог наблюдать кое-что интересное из fiddler:

/ IntegrationServer / ImportService.svc возвращает 404
/IntegrationServer/ImportService.svc/mex возвращает 200
/IntegrationServer/ImportService.svc?wdsl возвращает 200

ОБНОВЛЕНИЕ 2

Кажется, что
/IntegrationServer/ImportService.svc/soap
/IntegrationServer/ImportService.svc/soap12
тоже работает. Это моя конфигурация конечной точки.

<endpoint name="ImportServiceSoap" behaviorConfiguration="NoIpConfiguration" address="soap" binding="basicHttpBinding" contract="Integration.Server.IImportService"/>
<endpoint name="ImportServiceSoap12" behaviorConfiguration="NoIpConfiguration" address="soap12" binding="wsHttpBinding" contract="Integration.Server.IImportService">

Правильно ли предположить, что я всегда должен добавлять свойство "address" к адресу службы, если я хочу использовать пользовательский адрес конечной точки в клиенте?

1 Ответ

3 голосов
/ 02 мая 2011

Да, для пользовательского адреса конечной точки вам необходимо настроить атрибут адреса в элементе конечной точки.

Не видя содержимого элемента web.config serviceModel службы, я предполагаю, что служба настроена на предоставление двух конечных точек метаданных (...? Wsdl) и (... / mex). ОБНОВЛЕНИЕ 2 меняет работу из-за того, как сконфигурирована конфигурация конечной точки, отображаемая в вашем вопросе (адрес = "мыло"). Вот хорошее объяснение адресации в WCF из MSDN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...