2017-02-07 18 views
5

Tôi đã di chuyển một ISAPI DLL SOAP từ Delphi 10 Seattle sang Delphi 10.1 Cập nhật Berlin 2.Delphi 10.1 Berlin: SOAP Tóm tắt lỗi

Sau khi di chuyển một thời gian chạy "Tóm tắt ngoại lệ" được nêu ra.

Tôi nhận thấy rằng lớp "TWebRequest" trong "Web.HTTPApp.pas" đòi hỏi

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

Nhưng "TISAPIRequest" trong "Web.Win.IsapiHTTP" không thực hiện chức năng đầu tiên.

Vì vậy, trong "Web.Win.IsapiHTTP", tôi đã sao chép 3 params ReadClient từ chức năng 2 param:

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; 

"Tóm tắt Lỗi" ngoại lệ biến mất nhưng "Suối đọc lỗi" được nâng lên.

Bạn đã tìm thấy sự cố tương tự chưa?

Có cách giải quyết nào không?

+2

Tôi nghĩ đây là giải pháp thay thế: https://quality.embarcadero.com/browse/RSP-14919 – Alexandre

+1

Cách giải quyết của bạn dường như hoạt động. Nếu bạn muốn nó có thể được đề xuất như là giải pháp cho câu hỏi này. Cảm ơn. –

Trả lời

1

Đó là lỗi khác của Delphi.

Giải pháp có thể được tìm thấy tại this address

Chỉ cần thay thế 3 chức năng nghe trộm với những cái đúng.

+0

Tôi rất vui vì nó đã hoạt động! Tôi quyết định không xuất bản nó như là một câu trả lời bởi vì những người kiểm duyệt ở đây chỉ đang chờ để bỏ phiếu cho những câu trả lời này. Họ thường không có gì khác để làm. LOL – Alexandre