Delphi 10.1 Berlin:SOAP抽象错误

3
我已经将一个ISAPI DLL SOAP从Delphi 10 Seattle迁移到了Delphi 10.1 Berlin Update 2。在迁移后,出现了一个运行时的“抽象异常”。我注意到“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;

但是在“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; 

"抽象错误"异常消失,但引发了"流读取错误"。

您是否遇到类似的问题?

是否有任何解决方法?


2
我认为这是解决方法:https://quality.embarcadero.com/browse/RSP-14919 - Alexandre M
1
你的解决方法似乎有效。如果你愿意,可以将其作为这个问题的解决方案提出。谢谢。 - ar099968
1个回答

1

这是另一个 Delphi 的 bug。

解决方案可以在 this address 找到。

只需用正确的函数替换 3 个有问题的函数即可。


很高兴它起作用了!我决定不将其发布为答案,因为这里的管理员只是在等着给这些答案点踩。他们通常没有其他事情可做。哈哈 - Alexandre M

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接