问题标签 [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.
delphi - 如何在用 Delphi 编写的 ISAPI 模块中使用会话
我正在用 Delphi 编写一个 ISAPI 扩展,并寻找一种方法来克服 http 无状态问题。我想为此类任务使用会话,但找不到从我的 ISAPI 模块启动会话的方法。由于会话是非常特定于 Web 服务器的,我猜每个会话都有不同的方式,并且还猜测此类功能是通过服务器特定的 DLL 访问的。我目前对 Apache 很感兴趣,但非常感谢有关 IIS 的信息。
我下载了 PHP 的源代码并检查了session.c,其中包含PHPAPI void php_session_start(void)的代码,尽管它的代码并不多。
如何从 ISAPI Delphi Web 模块启动会话(并因此使用会话变量)?
php - php升级在数组和foreach()上抛出错误
所以我刚开始使用一个新的 php 并且我的所有函数都没有以相同的正确方式工作。我有一个购物车函数,它检查会话数组中的项目,然后将项目放入数组中。如果该项目已经存在,它会按输入的数量更新该输入。
我得到的错误是该行
$nqty= $_SESSION['item'][$theSearch]['qty'] + $qty;
和抛出的错误是
致命错误:不能将字符串偏移量用作数组
有人可以帮忙吗!
delphi - Cookie 大小限制。大饼干
我正在使用 ISAPI DLL 并遇到一种情况,即如果总 cookie 大小大于 4096 字节,DLL 的 TWebRequest.Cookie 根本不显示任何 cookie。有没有办法处理大饼干?
c++ - 使用 ISAPI 扩展从 IIS 发送回客户端的零字节
我正在尝试编写一个形式上的 ISAPI 扩展,以更好地理解 IIS。我有以下代码用于扩展:
IIS Express 以 HTTP 200 响应,但零字节被发送回客户端。上面有什么不对吗?作为参考,这是我的 applicationhost.config:
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_INFO
和 HSE_REQ_VECTOR_SEND
. 两者都给出相同的行为。
注意 2:如果我删除 WriteClient() 调用并只调用 ecb->ServerSupportFunction(),我的返回数据是我似乎无法更改的默认标头,后跟一行(现在是内容正文) “内容类型:图像/JPEG”)。因此,此行为不是由通过调用 WriteClient() 发送标头数据引起的
如何修改响应标头以便发送修改后的“Content-Type:”?
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 提供服务
c++ - 如何为我的 ISAPI 扩展创建单独的应用程序线程池?
我用 C++ 创建了一个 ISAPI 扩展,它是用 PowerBuilder 编程语言编写的代码的宿主。这个页面推荐创建我自己的线程池。不幸的是,它没有解释如何做到这一点。
我的一个想法是编写一个 Windows 服务并使用 Winsock 在 ISAPI 扩展和将处理 PowerBuilder 代码的服务之间进行通信。服务是否有可能接管客户端连接,或者扩展是否必须等待服务向其发送要返回给客户端的数据?
还有其他更好的方法吗?一个例子会很棒。