SOAP клиент в Delphi "The handle is in the wrong state for the requested operation"

Я создал самый тупой и простой в мире SOAP-сервер, примерно за 3 клика, в visual studio. Точные шаги в visual studio 2010: Сначала создайте новый проект как веб-приложение, затем добавьте новый элемент типа веб-сервис. (См. принятый ответ здесь для иллюстрации.) Эта служба мыльного сервера Service1 имеет простой метод GetData:

Фрагмент из clientService1.pas, созданный с помощью импортера WSDL...

  IService1 = interface(IInvokable)
  ['{967498E8-4F67-AAA5-A38F-F74D8C7E346A}']
    function  GetData(const value: Integer): string; stdcall;
    function  GetDataUsingDataContract(const composite: CompositeType2): CompositeType2; stdcall;
  end;

Когда я пытаюсь запустить этот метод, вот так:

procedure TForm3.Button1Click(Sender: TObject);
var
 rio : THTTPRIO;
 sv:IService1;
 addr : string;
 data : string;
begin
    //addr := '....'; // url from visual studio 2010 live debug instance.
    rio := THTTPRIO.Create(nil);
    sv := GetIService1( true, addr, rio );
    try
        data := sv.GetData(  0);

        Button1.Caption := data;

    finally
        sv := nil;

        rio.Free;
    end;
 end;

Ошибка, которую я получаю, выглядит так:

ESOAPHTTPException: 
 The handle is in the wrong state for the requested operation -    
 URL:http://localhost:8732/Design_Time_Addresses/WcfServiceLibrary1/Service1/ -      
 SOAPAction:http://tempuri.org/IService1/GetData'.

URL работает нормально, когда я вставляю вышеуказанный url в веб-браузер, поэтому обычный ответ, что SOAP-код в Delphi имеет свойство не замечать HTTP-сбой, не кажется вероятным. Скорее кажется, что я либо (а) сталкиваюсь с поломкой WinInet (известной в некоторых версиях windows), либо (б) делаю что-то неправильно?

Мне кажется, что любой, у кого установлены и visual studio, и delphi, должен быть в состоянии попытаться заставить фиктивный стартовый Soap-сервер в Visual Studio общаться с soap-клиентом в Delphi без каких-либо усилий. Но я не могу разобраться с простейшими вещами.

10
задан Community 23 May 2017 в 12:19
поделиться