简体   繁体   English

Delphi 10.1 Berlin:SOAP抽象错误

[英]Delphi 10.1 Berlin: SOAP Abstract Error

I've migrated an ISAPI DLL SOAP from Delphi 10 Seattle to Delphi 10.1 Berlin Update 2. 我已经将ISAPI DLL SOAP从Delphi 10 Seattle迁移到Delphi 10.1 Berlin Update 2。

After migration a runtime "Abstract Exception" is raised. 迁移后,引发运行时“抽象异常”。

I notice that the class "TWebRequest" in "Web.HTTPApp.pas" requires 我注意到“Web.HTTPApp.pas”中的类“TWebRequest”需要

// 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;

But the "TISAPIRequest" in "Web.Win.IsapiHTTP" does not implement the first function. 但是“Web.Win.IsapiHTTP”中的“TISAPIRequest”没有实现第一个功能。

So in "Web.Win.IsapiHTTP", I've copied 3 params ReadClient from 2 param function: 所以在“Web.Win.IsapiHTTP”中,我从2个参数函数中复制了3个参数ReadClient:

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; 

"Abstract Error" exception disappear but "Stream read error" is raised. “抽象错误”异常消失但引发“流读取错误”。

Have you found a similar issue? 你找到了类似的问题吗?

Is there any workaround? 有没有解决方法?

It's another Delphi bug. 这是另一个Delphi错误。

Solution can be found at this address 可在此地址找到解决方案

Simply replace 3 bugged functions with the correct ones. 只需用正确的函数替换3个错误的函数即可。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM