#wcf #http-status-code-404
#wcf #http-status-code-404
Вопрос:
Я могу просмотреть URL веб-сервиса, и он отлично отображается в браузере.
Я могу получить ?wsdl
из веб-браузера.
Когда я обращаюсь к службе, я получаю 404 (скрипач говорит: HTTP / 1.1 404 не найден)
*.svclog записывается, когда я обращаюсь к адресу с помощью браузера, но не когда я обращаюсь к нему с помощью soap-клиента.
using (ImportServiceClient client =
new ImportServiceClient("ImportServiceSoap12", REMOTE_ADDRESS))
{
Я пробовал базовые адреса и wsdlExtensions WCFExtras.
Все тот же 404.
Я смотрел на это: http://www.jamesgoodfellow.com/blog/post/IIS-60—HTTP-404—File-not-found-Internet-Information-Services.aspx но поскольку это XP, эта папка не существует, и она работает в веб-браузере, и создается *.svclog.
Тестовый компьютер, на котором я пытаюсь запустить эту штуку, — XP. Доступ к компьютеру осуществляется по адресу без ip.
До WCF я решал это с помощью via, но, похоже, я не могу найти решение в WCF.
Обновить
При выполнении «Настройки ссылки на службу» для этой конечной точки я смог заметить кое-что интересное от 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. Я не понимаю вашего вопроса.
2. Извините за этот вопрос. Я каким-то образом удалил часть предложения. Я просто спрашиваю, какой метод запроса / URL / HTTP не работает в данный момент?
Ответ №1:
Да, для пользовательского адреса конечной точки вам необходимо настроить атрибут address в элементе endpoint.
Не видя содержимого элемента service web.config ServiceModel, я предполагаю, что служба настроена на предоставление двух конечных точек метаданных (…?wsdl) и (… / mex). Изменения в вашем ОБНОВЛЕНИИ 2 работают из-за способа настройки конфигурации конечной точки, отображаемой в вашем вопросе (адрес = «soap»). Вот хорошее объяснение адресации в WCF из MSDN.