第八章 配置 IIS 以与 Web 网关配合使用 (Windows) - 配置Web应用程序路径

配置Web应用程序路径

本节介绍为 IIS 配置 Web 应用程序路径(例如 csp)的过程。这些过程对于 IIS的所有Web Gateway 配置选项都是通用的。

IISInternet 信息服务 (IIS) 管理器控制面板中进行配置。在文档根目录下配置的子目录可以分为虚拟目录或应用程序目录。虚拟子目录(或别名)映射到物理等效目录(Windows 目录)。这同样适用于归类为应用程序的子目录,除了定义物理等效项之外,还可以将应用程序与特定应用程序池相关联。默认是DefaultAppPool

由于 Web 应用程序是通过 Web 网关提供服务的,因此托管子目录(例如 /csp)应配置为应用程序。

在默认 CSP 配置中,/csp 应用程序路径映射到物理位置 install-dir\CSP。所有静态文件都位于此根目录下(\csp\broker...)。

  1. 打开 Internet 信息服务 (IIS) 管理器。
  2. 在左侧面板中,展开顶层以显示“网站”部分,然后显示“默认网站”部分。突出显示默认网站部分:
[MACHINE_NAME] ([machine_name]\[user_name])
            Web Sites
                    Default Web Site
  1. 在右侧面板中,选择查看应用程序。
  2. 再次在右侧面板中选择“添加应用程序”。
  3. 在添加应用程序对话框中,输入:
  • 别名:csp
  • 物理路径:install-dir\CSP\
  1. 选择确定。

如果使用基于替代选项的 Web Gateway 解决方案,请在 /csp 应用程序下设置一个名为 /bin 的应用程序。将此映射到保存 Web Gateway 二进制文件的物理目录。例如:

将应用程序 /csp/bin 映射到 C:\Inetpub\CSPGateway

使用 /bin 启用 URL

如果使用 IRIS 安装程序安装了 Web Gateway,则此步骤会自动完成。如果手动安装 Web Gateway,则需要执行此步骤。 (有关更多详细信息和完成此操作的替代方法,请参阅此外部网站 https://weblogs.asp.net/owscott/iis7-blocks-viewing-access-to-files-in-bin-and-other-asp-net -folders。)要启用包含 /bin 的 URL,请将以下位置标记添加到 applicationHost.config 文件中:

<location path="sitename.com/subfolder/bin/debug">
    <system.webServer>
        <security>
           <requestFiltering>
              <hiddenSegments>
                 <remove segment="bin" />                    
               </hiddenSegments>
           </requestFiltering>
        </security>
     </system.webServer>
 </location>

重新启动 IIS

本节介绍通过各个控制面板重新启动 IIS 时会发生什么情况。

大多数配置更改都可以对活动的 IIS 安装实时进行。但是,Internet 信息服务 (IIS) 管理器控制面板提供停止、启动和重新启动选项。这些对于刷新 Web 服务器配置很有用,但不会导致重新初始化活动的 Web Gateway 安装(不会重新加载 Web Gateway DLL)。

要强制 IIS 重新启动,以便重新加载 Web 网关模块,然后通过主 Windows 服务控制面板重新启动万维网发布服务。

Troubleshooting

本节介绍配置第三方模块(本机模块和 ISAPI)以与 IIS 配合使用时经常出现的问题。

可能遇到的最常见问题是,重新配置后,对 IIS 的请求失败并出现以下错误:

Service Unavailable

HTTP Error 503. The service is unavailable.

这通常表明默认应用程序池已终止。

  1. 打开 Internet 信息服务 (IIS) 管理器窗口。
  2. 在左侧面板中,展开顶层以显示“应用程序池”部分。
[MACHINE_NAME] ([machine_name]\[user_name])

Application Pools

  1. 检查默认应用程序池 (DefaultAppPool) 或服务器配置使用的任何应用程序池是否标记有“已启动”状态。
  2. 如有必要,重新启动应用程序池(使用右侧面板中的选项)。
  3. 如果问题仍然存在,请在主 Windows 事件日志(在“应用程序”部分)中查找线索。特别是检查以下错误消息:
Failed to find the RegisterModule entrypoint in the module DLL C:\Inetpub\CSPGateway\CSPms.dll. The data is the error.

无法在模块 DLL C:\Inetpub\CSPGateway\CSPms.dll 中找到 RegisterModule 入口点。数据是错误的。

例如,这表明正在使用的 Web Gateway DLL 版本未实现本机模块接口。从 InterSystems 获取最新的 DLL 或将 Web 网关配置为通过传统的 ISAPI 接口工作。

与所有软件一样,重新启动通常可以解决暂时性问题:要完全重新启动 IIS,请通过主 Windows 服务控制面板重新启动万维网发布服务。

不要使用“添加通配符脚本映射Add Wildcard Script Map”实用程序来映射文件扩展名。如果这样做,可能会看到以下错误:处理程序所需的指定模块不在模块列表中。如果要添加脚本映射处理程序映射,则 IsapiModuleCgiModule 必须位于模块列表中。而是使用“添加模块映射”* 来使用通配符映射文件扩展名。

03-04 05:36