本文作于2002年,当时为公司期刊供稿。 背景 虽然Domino提供了完整的web应用服务(包括http、smtp、pop3等),但大部分中小型客户都喜欢用windows平台配IIS 来架设企业的web服务器,这样可以利用广为应用的asp语言开发出漂亮的网页。如何让Domino也能支持asp呢?Lotus 为我们提供了较好的解决办法——Domino for IIS。 Domino for IIS介绍 Domino for IIS 其原理是将domino设置成IIS的扩展(主要包括ISAPI 扩展和IIS 扩展过滤器的设置),这样当用户端发出浏览Notes数据库的请求时,IIS将该请求自动转给domino服务器处理,若发出的是asp请求,则还是由IIS负责解释。 设置Domino ISAPI 扩展,可以使得当 IIS 遇到浏览器的 Domino 应用程序请求(即以 .NSF 为文件扩展名指定文件的 URL 请求)时可以使用该domino提供的解释程序。 设置Domino IIS 扩展过滤器,可以确保将用户证书及参数正确地传递给 Domino,并启用Domino/?OpenServer 等命令。 Domino for IIS支持所有在Domino Designer 中可用的 Web 应用程序特性。同时还支持 Java 小程序,包括所有与Domino一起安装的Designer小程序。 当运行使用 Domino for IIS 的 Web 应用程序时,Domino for IIS 只处理那些指定了 Domino 数据库的请求(也就是说,具有 .NSF 文件扩展名的文件)。所有其他的请求(例如:对 HTML、ASP 文件和 Java 小程序的请求)则由 IIS 处理。使用 Domino for IIS 的应用程序在存取 Domino 数据库时,通常无需修改;然而,存取其他文件的应用程序(如CGI 和 Java 服务器小程序)可能需要修改,以便与 Domino for IIS 协同工作。 在数据库安全性方面,Domino for IIS 支持 Domino 数据库的所有安全特性,例如:数据库的存取控制列表和“读者”域、“作者”域。 配置Domino for IIS 下面介绍如何配置Domino for IIS (一)在 windows NT + IIS4环境中,设置Domino for IIS >>>设置 ISAPI 扩展 1. 启动 MMC,并打开 Web 站点的 MMC 控制台文件。 2. 右击 IIS Web 站点,选择 “属性”。 3. 选择 “主目录” 附签,单击 “设置”。 4. 单击 “添加”。 5. 在 “可执行文件” 域中输入 ISAPI 扩展文件的完整路径名。该文件在 Domino 目录中,对于 Intel 平台,其名称为 NIISEXTN.DLL;对于 Alpha 平台,其名称为 AIISEXTN.DLL。例如:如果 Domino 安装在 Intel 机器的缺省目录中,那么该文件的完整路径名为 c:/lotus/domino/niisextn.dll。 6. 在 “扩展名” 域中,输入“.NSF” 7. 在 “动作” 域中输入下列不被 Domino for IIS 支持的 HTTP 成员函数:PUT, DELETE 8. 选择 “脚本引擎”,并取消选择 “检查文件是否存在”。 9. 单击 Ok。 >>>设置 IIS 扩展过滤器 1. 启动 MMC,并打开 Web 站点的 MMC 控制台文件。 2. 右击 IIS Web 站点,选择 “属性”。 3. 选择“ISAPI 过滤器”附签并单击“添加”。 4. 在“过滤器名称”域中输入用来描述IIS过滤器的文字,例如:Domino。 5. 在“可执行文件”域中输入过滤器文件的完整路径名。该文件在 Domino 目录中,对于 Intel 平台,其名称为 NIISFILT.DLL;对于Alpha 平台,其名称为AIISFILT.DLL。例如:如果 Domino 安装在 Intel 机器的缺省目录中,那么该文件的完整路径名为 c:/lotus/domino/niisfilt.dll。 6. 单击“确定”。 >>>指定 Domino 图标和 Java 小程序目录 指定 Domino 应用程序的图标和 Java 小程序文件的位置,以便 Domino for IIS 能正确地显示图标和 Java 小程序。 1. 启动 MMC,打开 Web 站点的 MMC 控制台文件。 2. 右击 IIS Web 站点,选择“新增”“虚拟目录”。 3. 在域中输入 icons,并单击 Next“下一步”。 4. 输入 Domino 图标目录的完整路径,例如:如果 Domino 安装在缺省的目录中,则输入 c:/notes/data/domino/icons。单击“下一步”。 5. 单击“完成”。不必更改缺省的权限设置。 6. 重复步骤2至步骤 5,并输入别名domjava,然后指定小程序目录的完整路径。缺省的小程序目录为 c:/lotus/domino/data/domino/java。 >>>启动 Domino for IIS 1. 启动 Domino 服务器。在运行 Domino for IIS时不要运行HTTP任务,因为IIS会处理Domino HTTP 请求。 2. 打开 MMC,并启动IIS。IIS 在用户首次请求 Domino URL时自动装入 Domino 扩展。 >>> 停止 Domino for IIS 必须关闭 IIS 服务器才能终止 Domino for IIS。关于关闭 IIS 服务器的信息,请参阅 Microsoft IIS 手册。 (二)在 windows 2000 + IIS5环境中,设置Domino for IIS 在 windows NT+IIS4环境中,设置Domino for iis4,只要按照以上设置即可(其他相关设置可参照Notes R5 Administrator 帮助),但在windows 2000 + IIS 5环境中,按原先的设置并不能如愿,在Lotus 的系统帮助中也没有相关的说明,经过测试,具体设置应顺序如下: 1、 启动internet信息服务,在“主目录”“配置”“添加”中添加“可执行文件”:Niisextn.dll,该文件在domino安装程序目录下:一般:C:/Lotus/Domino/niisextn.dll,扩展名为:.nsf在“动作”-“限于”栏中填入:GET,POST,TRACE,选中“脚本引擎”,取消“检查文件是否存在” 2、“主目录”“执行许可”栏中,选“纯脚本” 3、“主目录”“应用程序保护”栏中,选“低(IIS进程)” 4、“ISAPI筛选器”“添加”中,填入筛选器名称,如:DOMINO,执行文件:Niisfilt.dll,该文件所在目录与niisextn.dll相同 5、点“确定” 6、在根目录下新建虚拟目录domjava,指向domino安装目录:如c:/lotus/doimno/data/domino/java 7、在根目录下新建虚拟目录icons,指向domino安装目录:如c:/lotus/doimno/data/domino/icons 8、此时启动iis就可以浏览domino的数据库了,比如:http://birch.landray.com.cn/homepage.nsf?open 9、此时domino数据库的默认目录是安装目录下的data目录,一般为:c:/lotus/doimno/data 根据需要,也可以自行建虚拟目录,但.nsf文件的物理目录必须在data目录下,或在domino服务器文档里有连接的目录 10、若还不能正确浏览,请检查"目录安全性"“匿名访问和验证控制”“编辑”中,只选中“匿名访问”。 注意的其他事项 1、 Domino在服务器文档中,要选中“将Domino配置成Domino for IIS”,并禁止http服务。 2、 服务器的 NOTES.INI 文件应位于 Domino 程序目录中或服务器的 PATH 设置所指定的目录中。 3、 如果服务器的标识符不在 Domino 数据目录中,那么服务器的 NOTES.INI 文件必须在ServerKeyFilenamefile 设置中包括服务器标识符文件的完整限定路径。 4、 确保服务器标识符文件没有使用口令。在IIS启动 Domino ISAPI 扩展时不能输入口令。 5、 确保对于使用 Domino for IIS 的所有NT用户帐户,Domino 目录及其子目录对 NT 文件至少具有“更改”的存取权限。缺省的文件权限通常能满足要求;然而,如果一定要更改文件权限,那么请记住:访问服务器的 Web 用户需要足够的文件权限才能更改服务器中的数据库和文件。