2017-02-07 17 views
5

Я мигрировали в ISAPI DLL SOAP из Delphi 10 Сиэтл Delphi 10.1 Берлин Update 2.Delphi 10,1 Berlin: SOAP Аннотация Ошибка

После миграции со средой выполнения "Abstract Exception" приподнята.

Я заметил, что класс «TWebRequest» в «Web.HTTPApp.pas» требует

// Read count bytes from client 
function ReadClient(var Buffer: TBytes; Offset: Integer; Count: Integer): Integer; overload; virtual; abstract; 
function ReadClient(var Buffer; Count: Integer): Integer; overload; virtual; abstract; 

Но «TISAPIRequest» в «Web.Win.IsapiHTTP» не выполняет первую функцию.

Таким образом, в "Web.Win.IsapiHTTP", я скопировал 3 PARAMS ReadClient из функции 2 пар:

function TISAPIRequest.ReadClient(var Buffer: TBytes; Offset: Integer; Count: Integer): Integer; 
begin 
    Result := Count; 
    if not ECB.ReadClient(ECB.ConnID, @Buffer, DWORD(Result)) then 
    Result := -1; 
end; 

"Аннотация Ошибки" исключение исчезает, но "Поток ошибки чтение" поднят.

Вы нашли подобную проблему?

Есть ли обходной путь?

+2

Я думаю, что это обходное решение: https://quality.embarcadero.com/browse/RSP-14919 – Alexandre

+1

Ваш обходной способ работы сработает. Если вы хотите, это может быть предложено в качестве решения для этого вопроса. Благодарю. –

ответ

1

Это еще одна ошибка Delphi.

Решение можно найти на this address

Просто замените 3 прослушивают функции с правильными.

+0

Я рад, что это сработало! Я решил не публиковать его в качестве ответа, потому что модераторы здесь просто ждут, чтобы проголосовать за эти ответы. Обычно им больше нечего делать. лол – Alexandre