Существует служба WCF с конфигурацией:
<services>
<service name="MyService" behaviorConfiguration="MyServiceBehavior">
<endpoint
binding="basicHttpBinding"
contract="IMyService" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8001/MyService" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceMetadata httpGetEnabled="True" />
</behavior>
</serviceBehaviors>
</behaviors>
Этот скрипт должен вызывать его:
Option Explicit
Dim soapClient
Dim serviceUri
Dim serviceName
Dim portName
Dim result
serviceUri = "http://localhost:8001/MyService"
serviceName = "MyService"
portName = "BasicHttpBinding_IMyService"
Set soapClient = CreateObject("MSSOAP.soapClient")
soapClient.ClientProperty("ServerHTTPRequest") = True
soapClient.mssoapinit serviceUri & "?WSDL", serviceName, portName
При запуске скрипта появляется эта ошибка:
Клиент: WSDLReader: анализ файла WSDL не выполнен HRESULT = 0x8
0004005 - WSDLReader: сбой инициализации службы HRESULT = 0x80004005 - Служба WSDL: сбой инициализации порта для службы MyService HRESULT
= 0x80004005 - WSDLPort: анализ информации о привязке для порта BasicHttpBinding_IMyService завершился ошибкой HRESULT = 0x80004005 - WSDLPort: не удалось инициализировать операцию для порта BasicHttpBinding_IMyService HRESULT = 0x8000
4005 - WSDLOperation: операция // def: portType [@ name = "IMyService"] /
def: операция [@ name = "MyMethod"] не найдена в разделе типа порта
HRESULT = 0x80004005
Что не так? Пожалуйста, помогите.
Edit:
Спасибо, Чизо, за ответ.
Проблема с MSSOAP заключается в том, что для этого требуется, чтобы все схемы xsd были включены в сгенерированный файл WSDL. WCF не делает этого по умолчанию.