第八章 配置 IIS 以与 Web 网关配合使用 (Windows) – 配置Web应用程序路径
配置Web应用程序路径
本节介绍为 IIS
配置 Web
应用程序路径(例如 csp)的过程。这些过程对于
IIS的所有
Web Gateway 配置选项都是通用的。
IIS
在 Internet
信息服务 (IIS
) 管理器控制面板中进行配置。在文档根目录下配置的子目录可以分为虚拟目录或应用程序目录。虚拟子目录(或别名)映射到物理等效目录(Windows
目录)。这同样适用于归类为应用程序的子目录,除了定义物理等效项之外,还可以将应用程序与特定应用程序池相关联。默认是DefaultAppPool
。
由于 Web
应用程序是通过 Web
网关提供服务的,因此托管子目录(例如 /csp
)应配置为应用程序。
在默认 CSP
配置中,/csp
应用程序路径映射到物理位置 install-dirCSP
。所有静态文件都位于此根目录下(csproker...
)。
- 打开
Internet
信息服务 (IIS
) 管理器。 - 在左侧面板中,展开顶层以显示“网站”部分,然后显示“默认网站”部分。突出显示默认网站部分:
[MACHINE_NAME] ([machine_name][user_name])
Web Sites
Default Web Site
- 在右侧面板中,选择查看应用程序。
- 再次在右侧面板中选择“添加应用程序”。
- 在添加应用程序对话框中,输入:
- 别名:
csp
- 物理路径:
install-dirCSP
- 选择确定。
如果使用基于替代选项的 Web Gateway
解决方案,请在 /csp
应用程序下设置一个名为 /bin
的应用程序。将此映射到保存 Web Gateway
二进制文件的物理目录。例如:
将应用程序 /csp/bin
映射到 C:InetpubCSPGateway
使用 /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.
这通常表明默认应用程序池已终止。
- 打开
Internet
信息服务 (IIS
) 管理器窗口。 - 在左侧面板中,展开顶层以显示“应用程序池”部分。
[MACHINE_NAME] ([machine_name][user_name])
Application Pools
- 检查默认应用程序池 (
DefaultAppPool
) 或服务器配置使用的任何应用程序池是否标记有“已启动”状态。 - 如有必要,重新启动应用程序池(使用右侧面板中的选项)。
- 如果问题仍然存在,请在主
Windows
事件日志(在“应用程序”部分)中查找线索。特别是检查以下错误消息:
Failed to find the RegisterModule entrypoint in the module DLL C:InetpubCSPGatewayCSPms.dll. The data is the error.
无法在模块 DLL C:InetpubCSPGatewayCSPms.dll 中找到 RegisterModule 入口点。数据是错误的。
例如,这表明正在使用的 Web Gateway DLL
版本未实现本机模块接口。从 InterSystems
获取最新的 DLL
或将 Web
网关配置为通过传统的 ISAPI
接口工作。
与所有软件一样,重新启动通常可以解决暂时性问题:要完全重新启动 IIS
,请通过主 Windows
服务控制面板重新启动万维网发布服务。
不要使用“添加通配符脚本映射Add Wildcard Script
Map
”实用程序来映射文件扩展名。如果这样做,可能会看到以下错误:处理程序所需的指定模块不在模块列表中。如果要添加脚本映射处理程序映射,则 IsapiModule
或 CgiModule
必须位于模块列表中。而是使用“添加模块映射”* 来使用通配符映射文件扩展名。