问题标签 [isapi-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1886 浏览

delphi - 如何在用 Delphi 编写的 ISAPI 模块中使用会话

我正在用 Delphi 编写一个 ISAPI 扩展,并寻找一种方法来克服 http 无状态问题。我想为此类任务使用会话,但找不到从我的 ISAPI 模块启动会话的方法。由于会话是非常特定于 Web 服务器的,我猜每个会话都有不同的方式,并且还猜测此类功能是通过服务器特定的 DLL 访问的。我目前对 Apache 很感兴趣,但非常感谢有关 IIS 的信息。
我下载了 PHP 的源代码并检查了session.c,其中包含PHPAPI void php_session_start(void)的代码,尽管它的代码并不多。
如何从 ISAPI Delphi Web 模块启动会话(并因此使用会话变量)?

0 投票
0 回答
22 浏览

php - php升级在数组和foreach()上抛出错误

所以我刚开始使用一个新的 php 并且我的所有函数都没有以相同的正确方式工作。我有一个购物车函数,它检查会话数组中的项目,然后将项目放入数组中。如果该项目已经存在,它会按输入的数量更新该输入。

我得到的错误是该行 $nqty= $_SESSION['item'][$theSearch]['qty'] + $qty;和抛出的错误是

致命错误:不能将字符串偏移量用作数组

有人可以帮忙吗!

0 投票
1 回答
374 浏览

delphi - Cookie 大小限制。大饼干

我正在使用 ISAPI DLL 并遇到一种情况,即如果总 cookie 大小大于 4096 字节,DLL 的 TWebRequest.Cookie 根本不显示任何 cookie。有没有办法处理大饼干?

0 投票
1 回答
156 浏览

c++ - 使用 ISAPI 扩展从 IIS 发送回客户端的零字节

我正在尝试编写一个形式上的 ISAPI 扩展,以更好地理解 IIS。我有以下代码用于扩展:

IIS Express 以 HTTP 200 响应,但零字节被发送回客户端。上面有什么不对吗?作为参考,这是我的 applicationhost.config:

0 投票
0 回答
95 浏览

isapi - 无法修改 isapi 扩展中的响应标头

我有一个 isapi 扩展,它通过 WriteClient() 返回一个图像文件。

我需要在标题中返回“Content-Type:image/jpeg”(否则调用应用程序将不会处理图像)

所以,我创建了一个HSE_SEND_HEADER_EX_INFO结构并拥有成员pszHeader = "Content-Type: image/jpeg\r\n\r\n"

在我发出 WriteClient() 之前,我打电话给

调用 ServerSupportFunction() 的返回值为 TRUE(无需调用 GetLastError())

但是,我的标头信息被放入正文中,默认标头被发送到客户端。这是发送给客户端的标头:

请注意,它不会将“Content-Type:”更改为“image/jpeg”,而是保留"Content-Type: text/html". 奇怪的是,它将我的标题信息放入(即正文的第一行是“Content-Type:image/jpeg”......后面是实际的图像数据)。

注 1:我已经尝试HSE_SEND_HEADER_INFOHSE_REQ_VECTOR_SEND. 两者都给出相同的行为。

注意 2:如果我删除 WriteClient() 调用并只调用 ecb->ServerSupportFunction(),我的返回数据是我似乎无法更改的默认标头,后跟一行(现在是内容正文) “内容类型:图像/JPEG”)。因此,此行为不是由通过调用 WriteClient() 发送标头数据引起的

如何修改响应标头以便发送修改后的“Content-Type:”?

0 投票
2 回答
331 浏览

delphi - 它是为 Delphi ISAPI DLL 中的每个请求创建的 TWebModule

我正在使用 Delphi 编写一个 ISAPI 应用程序。那里有很多教程,但没有人超越经典的 OnAction/Response.Content 示例
问题不言自明。每个请求都会创建一个新的 TWebModule 实例吗?创建后,该 TWebModule 会继续处理该连接的请求吗?
甚至 Delphi 文档也很模糊。我正在尝试找到一种方法来管理应用程序内部的会话,但是教程和文档中的许多细节都不清楚,例如:在请求服务后是否卸载了 DLL?DLL 的“程序”部分(主要的 begin/end.pair)是 DLL 全局初始化吗?是否为每个浏览器创建了 TWebModule(例如,用户试图从同一台计算机上的两个不同浏览器进行连接)?
该应用程序将由在 Windows 2012 R2 上运行的 Apache 2.4 提供服务

0 投票
0 回答
21 浏览

c++ - 如何为我的 ISAPI 扩展创建单独的应用程序线程池?

我用 C++ 创建了一个 ISAPI 扩展,它是用 PowerBuilder 编程语言编写的代码的宿主。这个页面推荐创建我自己的线程池。不幸的是,它没有解释如何做到这一点。

设计高性能 ISAPI 应用程序

我的一个想法是编写一个 Windows 服务并使用 Winsock 在 ISAPI 扩展和将处理 PowerBuilder 代码的服务之间进行通信。服务是否有可能接管客户端连接,或者扩展是否必须等待服务向其发送要返回给客户端的数据?

还有其他更好的方法吗?一个例子会很棒。