Delphi 10.1 柏林:SOAP 抽象错误
Delphi 10.1 Berlin: SOAP Abstract Error
我已将 ISAPI DLL SOAP 从 Delphi 10 Seattle 迁移到 Delphi 10.1 Berlin Update 2。
迁移后运行时 "Abstract Exception" 被提升。
我注意到 "Web.HTTPApp.pas" 中的 class "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;
但是"Web.Win.IsapiHTTP"中的"TISAPIRequest"没有实现第一个功能
所以在 "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" 异常消失但 "Stream read error" 出现。
你有没有发现类似的问题?
有什么解决方法吗?
这是另一个 Delphi 错误。
可以在 this address
找到解决方案
只需将 3 个错误的函数替换为正确的函数即可。
我已将 ISAPI DLL SOAP 从 Delphi 10 Seattle 迁移到 Delphi 10.1 Berlin Update 2。
迁移后运行时 "Abstract Exception" 被提升。
我注意到 "Web.HTTPApp.pas" 中的 class "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;
但是"Web.Win.IsapiHTTP"中的"TISAPIRequest"没有实现第一个功能
所以在 "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" 异常消失但 "Stream read error" 出现。
你有没有发现类似的问题?
有什么解决方法吗?
这是另一个 Delphi 错误。
可以在 this address
找到解决方案只需将 3 个错误的函数替换为正确的函数即可。