Мой вопрос похож на
Как отправлять / получать SOAP-сообщения, используя .NET
Я хотел вызвать веб-сервис, но не так, как показано в приведенной выше ссылке. То, что я сделал, создал ссылку на сервис с помощью wsdl url (в приложении Windows с событием нажатия кнопки)
http://ipaddress:port/My/MyService?wsdl
создали объект клиента
Dim objProxy As MyClient = New MyClient()
Я заполнил objrequest и objreqheader, используя приведенные ниже методы (назначение строковых значений, а не xml)
objreqheader.id = "abcd"
Наконец, следующая строка вызывает сервис
objresponsehead = objProxy.myoperation(objreqheader, objrequest, objresp)
Из ссылки vb это публичная функция myoperation
Public Function myoperation(ByVal RequestHeader As AFA.RequestHeaderType, ByVal GetTransactionDetailsReq As AFA.GetTransactionDetailsReqType, <System.Runtime.InteropServices.OutAttribute()> ByRef GetTransactionDetailsResp As AFA.GetTransactionDetailsRespType) As AFA.ResponseHeaderType
Dim inValue As AFA.getTransactionDetailsRequest = New AFA.getTransactionDetailsRequest()
inValue.RequestHeader = RequestHeader
inValue.GetTransactionDetailsReq = GetTransactionDetailsReq
Dim retVal As AFA.getTransactionDetailsResponse = CType(Me,AFA.myservice).getTransactionDetails(inValue)
GetTransactionDetailsResp = retVal.GetTransactionDetailsResp
Return retVal.ResponseHeader
End Function
Проблема в том, что мой объект пуст. Нет сгенерированного исключения, objresponsehead заполняется как "abcd". Служба не вызывается. Я не уверен, как получить файл трассировки из файла конфигурации приложения, чтобы отладить проблему. Я помню, когда я использовал это в первый раз, я получил сообщение об ошибке «Нет прослушивания конечной точки, которая может принять сообщение», однако сейчас ошибки нет.
Я добавил ниже в файл конфигурации приложения, чтобы получить трассировку, чтобы увидеть, что происходит. Но не увидел ни одного сгенерированного файла трассировки (trace.log).
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add type="System.Diagnostics.TextWriterTraceListener" name="TextWriter" initializeData="trace.log" />
</listeners>
</trace>
</system.diagnostics>
Я проверил свойство objProxy, в качестве свойства которого используется базовая привязка http.
Кто-нибудь вызывал сервис как этот? От soapui ответ хороший, после того как я заполнил поля запроса.
Как включить трассировку, чтобы увидеть, что происходит с запросом и в чем проблема.