首页 > 解决方案 > 访问 TWebRequest.Content 会在 ISAPI DLL 中引发 ERangeError 异常,但不会在控制台应用程序中引发

问题描述

我正在编写一个处理来自 IoT 设备的 POST 请求的 ISAPI dll。
同时,我编写了一个控制台应用程序,它共享相同的TWebModule.

处理请求的动作需要访问请求内容(TWebRequest.Content),因为默认情况下它没有被正确解析。

当程序构建为控制台应用程序时,一切正常。但是,ERangeError当我想访问TWebRequest.ContentISAPI dll 时会引发异常。

这是 Content 属性的示例:

-----------------------------7d624e177018a
Content-Disposition: form-data; name="Date_Time"

06/09/2021 11:14:03
-----------------------------7d624e177018a
Content-Disposition: form-data; name="f"; filename="IV.txt"
Content-Type: application/octet-stream

"TagId";"TagName";"Value";"AlStatus";"AlType";"Quality"
4;"AAA";0;0;0;65472
5;"AAB";0;0;0;65472
35;"TEST_Index";0;0;0;65472
36;"Signal";21;0;0;65472

-----------------------------7d624e177018a--

以下是重现该问题的示例过程:

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin   
  Response.Content:= Request.Content;   // Throws a ERangeError exception in ISAPI dll   
end;

我错过了什么?

标签: delphiisapi

解决方案


推荐阅读