0

有一种方法可以配置 Windows CE HTTPD 服务器,以便它为定义的文件扩展名(例如,“.asp”)加载一些定义的 ISAPI 扩展名(例如,asp.dll)。

让它为 URL 中的无扩展名文件名加载一些 ISAPI 扩展的最简单方法是什么?

4

2 回答 2

1

最后,我还没有找到另一种方法来实现我的目标,而是为此创建了一个特殊的 ISAPI 过滤器。这是一个简单的 ISAPI 过滤器,它处理SF_NOTIFY_URL_MAP服务器事件并根据扩展映射设置更改pszPhysicalPath变量。为了让它更通用一点,我让它不仅支持从无扩展路径的映射,还支持从任何扩展映射到任何扩展。映射在 Windows 注册表中设置。

它是如何工作的,基本上:

  1. 请求到达 HTTPD 服务器,例如 URL /vroot/file
  2. 服务器将 /vroot/file 映射到某个物理路径,例如 \disc\vroot\file
  3. 服务器使用物理路径调用过滤器,过滤器根据其设置将其映射到,例如,\disc\vroot\file.asp。
  4. 然后,服务器根据 ScriptMap 注册表设置正确地使用 asp.dll 处理该文件。

如果有人需要,我已经在 GitHub 上发布了源代码。

于 2014-05-30T07:15:07.983 回答
0

您是否尝试使用“。” 作为文件扩展?从来没有试过自己,这只是一个想法。或者您可以使用 ISAPI 扩展并重新定义整个虚拟根,但这适用于该根下的所有请求,而不仅仅是没有扩展名的文件名。

于 2014-05-28T05:20:01.817 回答