Я столкнулся с интересной проблемой, с которой я никогда не сталкивался в XP или IIS 6.
По сути, я не могу заставить собственный сервер веб-службы Delphi (WebBroker) работать с собственным веб-сервисомклиент в Windows 7 64-битный.
Вот самая основная разбивка.Если я создаю новое приложение веб-службы в Delphi 2010 (или любой другой версии, вплоть до Delphi 7) и обращаюсь к нему с помощью IE 8, я вижу HTML-код, создаваемый компонентом WSDLHTMLPublish, но я никогда не смог добраться до SOAP.Точно так же импортер WSDL также не может получить доступ к SOAP.(У меня IIS 7 настроен на использование 32-разрядного пула приложений, и я создал рабочую карту сценариев для сопоставлений обработчиков. Короче говоря, 32-разрядная веб-служба ISAPI работает).
НапримерУ меня есть простой сервер веб-службы с именем TestService (созданный с использованием примера интерфейса по умолчанию, сгенерированного при создании нового сервера веб-службы).
Я установил его в виртуальный каталог с именем scripts.
Если я введу http://localhost/scripts/TestService.dll/wsdl, IIS 7 отобразит страницу http://localhost/scripts/TestService.dll.
Если я наведу указатель мыши на ссылку WSDL для ITestService, в строке состояния появится http://localhost/scripts/TestService.dll/wsdl/ITestService.Однако, когда я нажимаю эту ссылку, в адресной строке отображается http://localhost/scripts/TestService.dll/wsdl/ITestService,, но я вижу только HTML-код из http://localhost/scripts/TestService.dll. Кажется, нет никакого способа получить определение SOAP.IIS 7, похоже, игнорирует все после имени скрипта (игнорирует информацию о пути).
Дополнительным доказательством того, что IIS7 удаляет информацию о пути, является то, что, если я приостановлю свою мышь над ссылкой ITestService, строка состояния покажет http://localhost/scripts/TestService.dll?intf=ITestService. При щелчке по этой ссылке я перехожу на другую HTML-страницу, связанную с http://localhost/scripts/TestService.dll?intf=ITestService. Однако любая ссылка, содержащая pathinfo после имени скрипта, приводит меня просто к http://localhost/scripts/TestService.dll.
Я проверил это в Delphi 7, Delphi 2010 и Delphi XE с теми же результатами.
Я предполагаю, что IIS7 удаляет информацию о пути, поскольку даже импортер WSDL не может получить определение SOAP.
Попытка создания нового веб-сервиса с использованием опции CGI и получение того же результата.
Есть идеи, что происходит?
Добавлено: Боб Сварт сообщает, что у него естьне было проблем под Windows 7 32-bit.Скачиваем 32-битную ОС и попробуем это (на новой ВМ).