配置 IIS 7 以实现 Web 同步

本主题中的过程将指导你完成手动配置 Microsoft Internet Information Services (IIS) 版本 7 及更高版本以用于合并复制的 Web 同步的过程。

配置 IIS 7 是启用 Web 同步所需的三个步骤中的第一个步骤。

有关整个配置过程的概述,请参阅配置 Web 同步

重要

请确保应用程序仅使用 .NET Framework 2.0 或更高版本,并且未在 IIS 服务器上安装早期版本的 .NET Framework。 早期版本的 .NET Framework 可能会导致错误,例如:“Web 同步期间消息的格式无效。 确保在 Web 服务器上正确配置复制组件。

若要使用 Web 同步,必须完成以下步骤来配置 IIS 7。 本主题详细介绍了每个步骤。

  1. 在运行 IIS 的计算机上安装和配置 Microsoft SQL Server 复制侦听器。

  2. 配置安全套接字层(SSL)。 IIS 与所有订阅服务器之间的通信需要 SSL。

  3. 配置 IIS 身份验证。

  4. 为 SQL Server 复制侦听器配置帐户并设置权限。

安装 SQL Server 复制侦听器

从版本 5.0 开始,IIS 中支持 Web 同步。 IIS 版本 5 和 6 的“配置 Web 同步向导”不适用于 IIS 版本 7.0 及更高版本。 从 SQL Server 2012 开始,若要在 IIS 服务器上使用 Web 同步组件,应安装包含复制的 SQL Server。 这可以是免费的 SQL Server Express 版本。

安装和配置 SQL Server 复制侦听器

  1. 在 IIS 计算机上安装 SQL Server 复制。

  2. 在正在运行 IIS 的计算机上为 replisapi.dll 创建一个新的文件目录。 可在任意所需位置创建该目录,但建议将该目录创建在 <驱动器>:\Inetpub 目录下。 例如,可以创建目录 <驱动器>:\Inetpub\SQLReplication\。

  3. 将 replisapi.dll 从目录 <驱动器>:\Program Files\Microsoft SQL Server\120\com\ 复制到在步骤 1 中创建的文件目录。

  4. 注册 replisapi.dll:

    1. 单击 开始,然后单击 运行。 在 “打开 ”框中,输入 cmd,然后单击“ 确定”。

    2. 在步骤 1 所创建的目录中,执行以下命令:

      regsvr32 replisapi.dll

  5. 创建一个用于复制的新网站或使用现有网站。 复制组件将在同步过程中访问此网站。 本主题中的过程将假定默认网站。 有关如何创建网站的详细信息,请参阅 IIS 文档

  6. 在 IIS 上创建一个虚拟目录。 应在步骤 4 所创建的网站下创建虚拟目录,并将其映射到步骤 1 中创建的目录。 建议尽量限制为此目录分配权限。 您必须至少选择“读取”权限和“执行”权限。

    1. 在“Internet 信息服务(IIS)管理器”的“连接”窗格中,右键单击“默认网站”,然后选择“添加虚拟目录”。

    2. 对于“别名”,请输入 SQLReplication

    3. 对于 物理路径,请输入 <drive>:\Inetpub\SQLReplication\,然后单击“ 确定”。

  7. 配置 IIS 以允许执行 replisapi.dll。

    1. Internet Information Services (IIS) 管理器中,单击 “默认网站”。

    2. 在中心窗格中,单击“ 处理程序映射”。

    3. “动作”窗格中,单击“添加模块映射”

    4. 对于 请求 路径,请输入 replisapi.dll

    5. “模块 ”下拉列表中,选择 IsapiModule

    6. 对于 可执行文件,请输入 <驱动器>:\Inetpub\SQLReplication\replisapi.dll

    7. 输入 作为“名称”Replisapi

    8. 单击“ 请求限制 ”按钮,单击“ 访问 ”选项卡,然后单击“ 执行”。

    9. 单击“ 确定 ”关闭 “请求限制 ”对话框,然后单击“ 确定 ”以关闭“ 添加模块映射 ”对话框。 当系统提示你允许 ISAPI 扩展时,请单击“ ”以添加该扩展。

    10. 检查 Replisapi.dll 是否列在“已启用”处理程序映射下。 如果它位于 “已禁用 ”列表中,请右键单击 Replisapi 条目,然后单击“ 编辑功能权限”。 选中“ 执行 ”框,然后单击“ 确定”。

配置 IIS 身份验证

当订阅服务器计算机连接到 IIS 时,订阅服务器必须经过 IIS 的身份验证才能访问资源和过程。 身份验证可以应用于整个网站或您创建的虚拟目录。

建议将基本身份验证与 SSL 配合使用。 无论使用的身份验证类型如何,都需要 SSL。

建议将基本身份验证与 SSL 配合使用。 无论使用的身份验证类型如何,都需要 SSL。

配置 IIS 身份验证

  1. Internet Information Services (IIS) 管理器中,单击 “默认网站”。

  2. 在中间窗格中,双击“身份验证”。

  3. 右键单击“匿名身份验证”,然后选择“禁用”。

  4. 右键单击“基本身份验证”,然后选择“启用”。

配置安全套接字层

若要配置 SSL,请指定要由运行 IIS 的计算机使用的证书。 用于合并复制的 Web 同步支持使用服务器证书,但不支持使用客户端证书。 若要为部署配置 IIS,就必须首先从证书颁发机构 (CA) 获取证书。 有关证书的详细信息,请参阅 IIS 文档。

安装证书后,必须使该证书与 Web 同步所用的网站相关联。 出于开发和测试目的,可以指定自签名证书。 IIS 7 可以为您创建证书并在计算机上注册该证书。

用于生产的部署与此处提供的过程之间的区别在于,在生产环境和预生产测试中,将使用 CA 颁发的证书,而不是自签名证书。

重要

不建议在生产安装中使用自签名证书。 自签名证书不安全。 仅将自签名证书用于开发和测试目的。

若要配置 SSL,请执行以下步骤:

  1. 将网站配置为要求 SSL 并忽略客户端证书。

  2. 从 CA 获得证书或创建自签名证书。

  3. 将证书绑定到复制网站。

要求对网站使用 SSL 安全性

  1. Internet Information Services (IIS) 管理器中,展开本地服务器节点,然后单击 默认网站 (或网站同步站点(如果它不同于默认网站)。

  2. 在中间窗格中,双击“SSL 设置”。

  3. 选中“要求 SSL”选项。 在“客户端证书”下,确保已选中“忽略”按钮。

创建用于测试的自签名证书

  1. Internet Information Services (IIS) 管理器中,单击本地服务器节点,然后在中心窗格中双击 “服务器证书”。

  2. 操作窗格中,单击创建 Self-Signed 证书

  3. 在“ 创建 Self-Signed 证书 ”对话框中,输入证书的名称,然后单击“ 确定”。

将证书绑定到网站
  1. “连接 ”窗格中,单击 “默认网站 ”(或网站同步网站(如果与默认网站不同)。

  2. “作 ”窗格中,单击“ 绑定”,然后单击“ 添加”。 将显示 “添加网站绑定 ”对话框。

  3. “类型” 下拉列表中,选择 https。 保留“IP 地址”和“端口”的默认设置。

  4. SSL 证书 下拉列表中,选择在“创建自签名证书以进行测试”中创建的证书,单击“ 确定”,然后单击“ 关闭”。

测试该证书
  1. Internet Information Services (IIS) 管理器中,单击 “默认网站”。

  2. 操作窗格中,单击浏览 *:443(https)

  3. Internet Explorer 将打开并显示一条消息,指出“此网站的安全证书有问题”。此警告告知关联证书不是由已识别的 CA 颁发的,可能不可信。 这是预期警告,因此请单击“继续访问此网站(不推荐)”。

  4. 如果系统提示 连接到 localhost,请输入用户名和密码以继续。 此时应能看到该网站的默认页面。

设置 SQL Server 复制监听器的权限

订阅服务器计算机连接到正在运行 IIS 的计算机时,将使用您在配置 IIS 时指定的身份验证类型对该订阅服务器进行身份验证。 IIS 对订阅服务器进行身份验证后,IIS 将检查该订阅服务器是否有权调用 SQL Server 复制。 通过设置 replisapi.dll 权限可以控制能够调用 SQL Server 复制的用户。 适当的权限配置对于防止在未经授权的情况下访问 SQL Server 复制而言很有必要。

若要配置运行 SQL Server 复制侦听器的帐户的最低权限,请完成以下过程。 以下过程中的步骤适用于Microsoft运行 IIS 7.0 的 Windows Server 2008。

除了要执行下列步骤之外,请确保所需的登录名存在于发布访问列表 (PAL) 中。 有关 PAL 的详细信息,请参阅保护发布服务器

重要 在本部分中创建的帐户是将在同步期间连接到发布服务器和分发服务器的帐户。 此帐户必须作为 SQL 登录帐户添加到分发服务器和发布服务器上。

用于 SQL Server 复制侦听器的帐户必须具有“连接到发布服务器或分发服务器”部分中合并代理安全主题中所述的权限。

总之,该帐户必须:

  • 是发布访问列表 (PAL) 的成员。

  • 映射到与发布数据库中的某个用户关联的登录名。

  • 映射到与分发数据库中的某个用户关联的登录名。

  • 对快照共享具有读取权限。

配置帐户和权限

  1. 在运行 IIS 的计算机上创建一个本地帐户:

    1. 打开 “服务器管理器” 。 在“开始”菜单中,右键单击“ 计算机”,然后单击“ 管理”。

    2. 在“服务器管理器”中,展开“配置”,然后展开“本地用户和组”。

    3. 右键单击“用户”,然后单击“新建用户”

    4. 输入用户名和强密码。 清除“用户在下次登录时必须更改密码”。

    5. 单击“ 创建”,然后单击“ 关闭”。

  2. 将帐户添加到 IIS_IUSRS 组:

    1. “服务器管理器”中,展开 “配置”,展开 “本地用户和组”,然后单击“ ”。

    2. 右键单击 IIS_IUSRS,然后单击“ 添加到组”。

    3. “IIS_IUSRS属性 ”对话框中,单击“ 添加”。

    4. 在“选择用户、计算机或组”对话框中,添加在步骤 1 中创建的帐户。

    5. 确保“从此位置”显示的是本地计算机(而不是域)的名称。 如果此字段未显示本地计算机名称,请单击“ 位置”。 在“ 位置 ”对话框中,选择本地计算机,然后单击“ 确定”。

    6. “选择用户 ”对话框和 “IIS_IUSRS属性 ”对话框中,单击“确定”。

  3. 对包含 replisapi.dll 的文件夹授予最低帐户权限:

    1. 在 Windows 资源管理器中,右键单击为 replisapi.dll创建的文件夹,然后单击“ 属性”。

    2. 在“ 安全 ”选项卡上,单击“ 编辑”。

    3. “文件夹名称>权限<”对话框中,单击“添加”以添加在步骤 1 中创建的帐户。

    4. 确保“从此位置”显示的是本地计算机(而不是域)的名称。 如果此字段未显示本地计算机名称,请单击“ 位置”。 在“ 位置 ”对话框中,选择本地计算机,然后单击“ 确定”。

    5. 验证是否仅向该帐户授予了“读取”、“读取和执行”和“列出文件夹内容”权限。

    6. 选择不需要访问目录的任何用户或组,单击“ 删除”,然后单击“ 确定”。

  4. 在“Internet 信息服务(IIS)管理器”中创建应用程序池:

    1. 在“Internet 信息服务(IIS)管理器”中的“连接”窗格中,展开本地服务器节点。

    2. 右键单击 应用程序池,然后单击“ 添加应用程序池”。

    3. 输入应用程序池的名称,保留其余字段的默认值,然后单击“ 确定”。

    注释

    如果您预计并发同步客户端超过两个,则最好创建 Web 园。 有关详细信息,请参阅 “配置 Web 同步”中的“创建 Web 花园”。

  5. 将帐户与应用程序池关联:

    1. Internet Information Services (IIS) 管理器中,展开本地服务器节点,然后单击 应用程序池

    2. 右键单击创建的应用程序池,然后单击“ 设置应用程序池默认值”。

    3. “应用程序池默认值 ”对话框中,向下滚动到 “进程模型 ”部分,然后单击“ 标识 ”字段。

    4. 单击标识行右侧的省略号按钮。

    5. 单击 “自定义帐户” 单选按钮,然后单击“ 设置”。

    6. “用户名和密码”字段中,输入在步骤 1 中创建的帐户和密码,然后单击“确定”。

    7. 单击“ 确定 ”以关闭 “应用程序池标识 ”对话框,然后单击“ 确定 ”以关闭 “应用程序池默认值”对话框。

  6. 将应用程序池与复制网站关联:

    1. Internet Information Services (IIS) 管理器中,展开本地服务器节点,然后单击 默认网站 (或网站同步站点(如果它不同于默认网站)。

    2. “作 ”窗格中的“ 管理网站”下,单击“ 高级设置”。

    3. “高级设置” 对话框中,单击 应用程序池右侧的省略号按钮。

    4. “应用程序池 ”下拉列表中,选择在步骤 4 中创建的应用程序池,然后单击“ 确定”。

    5. 再次单击 “确定 ”关闭“高级设置”。

测试与 replisapi.dll 的连接

在诊断模式下运行 Web 同步以测试与运行 IIS 的计算机的连接,并确保正确安装了安全套接字层(SSL)证书。 若要在诊断模式下运行 Web 同步,您必须是运行 IIS 的计算机中的管理员。

测试与 replisapi.dll 的连接

  1. 确保订阅服务器中的局域网 (LAN) 设置正确:

    1. 在Microsoft Internet Explorer 中,在 “工具” 菜单上,单击“ Internet 选项”。

    2. “连接” 选项卡上,单击 “局域网设置”

    3. 如果未在 LAN 上使用代理服务器,请清除 “自动检测设置” 并使用 LAN 的代理服务器

    4. 如果使用代理服务器,请单击使用代理服务器进行 LAN 设置绕过本地地址的代理服务器,然后单击确定

  2. 在订阅服务器上的 Internet Explorer 中,用向 replisapi.dll 的地址追加 ?diag 的方法以诊断模式连接到服务器。 例如: https://server.domain.com/directory/replisapi.dll?diag

    注释

    在上面的示例中,应将 server.domain.com 替换为 IIS 管理器中“服务器证书”部分下列出的确切的“颁发到”名称。

  3. 如果 Windows作系统无法识别为 IIS 指定的证书,将显示 “安全警报 ”对话框。 此警报可能是因为证书是测试证书,或者证书是由 Windows 无法识别的证书颁发机构(CA)颁发的。

    注释

    如果未显示此对话框,请确保要访问的服务器证书已作为受信任的证书添加到订阅服务器上的证书存储中。 有关导出证书的详细信息,请参阅 IIS 文档。

    1. “安全警报 ”对话框中,单击“ 查看证书”。

    2. “证书 ”对话框中的“ 常规 ”选项卡上,单击“ 安装证书”。

    3. 完成证书导入向导,接受默认值。

    4. 在“ 安全警告 ”对话框中,单击“ ”。

    5. 在“证书导入向导”确认对话框中,单击“ 确定”。

    6. 关闭“证书”对话框。

    7. “安全警报 ”对话框中,单击“ ”。

    注释

    为用户安装证书。 必须为要与 IIS 同步的每个用户执行该过程。

  4. 在“连接到 <服务器名>”对话框中,指定合并代理将用于连接到 IIS 的登录名和密码。 在新建订阅向导中也要指定这些凭据。

  5. 在名为 SQL Websync 诊断信息的 Internet Explorer 窗口中,验证页面上每个 状态 列中的值是否为 SUCCESS

  6. 确保证书已正确安装到订阅服务器中:

    1. 关闭并重新打开 Internet Explorer。

    2. 以诊断模式连接到服务器。 如果证书安装正确,则不会显示 “安全警报 ”对话框。 如果出现对话框,则尝试连接到运行 IIS 的计算机时,合并代理将失败。 必须确保要访问的服务器证书已作为受信任的证书添加到订阅服务器上的证书存储中。 有关导出证书的详细信息,请参阅 IIS 文档。

另请参阅

合并复制的 Web 同步
配置 Web 同步