为 Web 同步配置 IIS

本主题中的过程构成了为合并复制配置 Web 同步的第二步。 为 Web 同步启用发布后,将执行此步骤。 有关配置过程的概述,请参阅 “配置 Web 同步”。 完成本主题中的过程后,请继续执行第三步,将订阅配置为使用 Web 同步。 以下主题介绍了第三步:

Web 同步使用运行 Microsoft Internet Information Services (IIS) 的计算机同步请求订阅以合并发布。 支持 IIS 版本 5.0、IIS 版本 6.0 和 IIS 版本 7.0。 IIS 版本 7.0 不支持配置 Web 同步向导。

重要

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

谨慎

不要同时使用 WebSync 和备用快照文件夹位置。

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

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

  2. 使用 SQL Server 安装向导在运行 IIS 的计算机上安装Microsoft SQL Server 连接组件。 如果计划使用步骤 3 中提到的“配置 Web 同步向导”,则还必须在运行 IIS 的计算机上安装 SQL Server Management Studio。

  3. 配置运行 IIS 进行 Web 同步的计算机。 可以手动配置计算机或使用“配置 Web 同步向导”。 建议使用向导。

    注释

    如果运行 IIS 的计算机在 64 位版本的 Windows 上运行,则必须运行以下命令,以确保服务器已正确配置为运行 Internet Server API (ISAPI) 应用程序。 有关详细信息,请参阅 IIS 文档。

    cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1  
    
  4. 为 SQL Server 复制侦听器设置适当的权限。

  5. 在诊断模式下运行 Web 同步,以测试与运行 IIS 的计算机的连接,并确保正确安装 SSL 证书。

配置安全套接字层

若要配置 SSL,请为运行 IIS 的计算机指定证书以供使用。 合并复制的 Web 同步支持使用服务器证书,但不支持客户端证书。 若要为部署配置 IIS,就必须首先从证书颁发机构 (CA) 获取证书。 证书颁发机构是一个实体,负责建立和保证属于用户、计算机或其他证书颁发机构的公共加密密钥的真实性。 有关证书的详细信息,请参阅 IIS 文档。 安装证书后,必须使该证书与 Web 同步所用的网站相关联。

指定用于部署的证书

  1. 以管理员身份登录到运行 IIS 的计算机。

  2. 启动 Internet Information Services (IIS) 管理器

    1. 单击 开始,然后单击 运行

    2. 在“打开”框中键入 ,然后单击“确定”inetmgr

  3. 运行 IIS 证书向导:

    1. Internet Information Services (IIS) 管理器中,展开 本地计算机 节点,然后展开 “网站” 文件夹。

    2. 右键单击 “默认网站”,然后单击“ 属性”。

    3. “默认网站属性 ”对话框中的“ 目录安全性 ”选项卡上,单击“ 服务器证书”。

    4. 完成 Web 服务器证书向导。

  4. 单击 “确定”

如果无法从 CA 获取服务器证书,则可以指定用于测试的证书。 若要配置 IIS 6.0 进行测试,请使用 SelfSSL 实用工具安装证书。 此实用工具在 IIS 6.0 资源工具包中可用。 可以从 Microsoft下载中心下载工具。 对于 IIS 5.0,请转到 Microsoft帮助和支持

注释

证书必须与网站关联,然后该网站才能使用 SSL。 SelfSSL 会自动将证书与默认网站关联。 如果您已经拥有证书或者稍后从 CA 安装证书,您必须将该证书显式关联到用于 Web 同步的网站。 确保只有一个证书与用于同步订阅的网站相关联。 如果有多个证书,订阅服务器将使用第一个可用的网站。

指定用于在 IIS 6.0 中测试的证书

  1. 以管理员身份登录到运行 IIS 的计算机。

  2. 下载并安装 SelfSSL。 默认情况下,应用程序安装到 <drive>:\Program Files\IIS Resources\SelfSSL。 应用程序和文档快捷方式被复制到 <drive>:\Documents and Settings\All Users\Start Menu\Programs\IIS Resources\SelfSSL。

  3. 运行 Selfssl:

    • 若要运行具有所有参数的默认值的 SelfSSL,请找到应用程序的安装目录,然后双击 SelfSSL.exe。

      注释

      默认情况下,SelfSSL 安装的证书有效期为 7 天。

    • 若要指定一个或多个参数的值:单击“ 开始”,然后单击“ 运行”。 在 “打开 ”框中,输入 cmd,然后单击“ 确定”。 找到 SelfSSL 安装目录,键入 SelfSSL,然后为一个或多个参数指定值。 对于参数列表,请键入 SelfSSL -?

安装连接组件和 SQL Server Management Studio

安装 SQL Server 连接组件和 SQL Server Management Studio

  1. 以管理员身份登录到运行 IIS 的计算机。

  2. 从 SQL Server 2012 安装磁盘启动 SQL Server 安装向导。 有关使用此向导的详细信息,请参阅 安装向导(安装程序)中的“安装 SQL Server 2014”。

  3. “功能选择 ”页上,选择 “客户端工具连接”。

  4. 如果计划使用“配置 Web 同步向导”,请选择 “管理工具 - 基本”。

  5. 完成向导,然后重新启动计算机。

    注释

    可以安装附加组件,但 Web 同步只需要连接性组件。

使用“配置 Web 同步向导”配置运行 IIS 的计算机

使用“配置 Web 同步向导”或手动配置 IIS 服务器。 建议使用向导,但下一部分中还提供了手动配置的步骤。 SQL Server 2012 提供的 Web 同步向导仅适用于在运行 SQL Server 2012 的发布服务器上创建的发布,或升级到 SQL Server 2012 的发布服务器。 向导不能用于 SQL Server 2005 上的发布。 该向导可用于 SQL Server 2005 及更高版本的订阅,以及 SQL Server Compact 3.5 3.0 及更高版本。

配置具有以下特征:

  • 在 IIS 中使用默认网站。 但是,可以使用另一个网站。 有关如何创建网站的详细信息,请参阅 IIS 文档。

    注释

    您指定的网站提供对 Web 同步使用的组件的访问。 除非将网站配置为这样做,否则网站不会提供对其他数据或网页的访问权限。

  • 创建虚拟目录及其关联的别名。 访问 Web 同步组件时使用别名。 例如,如果 IIS 地址为 https://*server.domain.com* 且您指定了“websync1”作为别名,那么访问 replisapi.dll 组件的地址为 https://*server.domain.com*/websync1/replisapi.dll

  • 使用基本身份验证。 建议使用基本身份验证,因为基本身份验证使你可以在单独的计算机上运行 IIS 和 SQL Server 发布服务器/分发服务器(建议的配置),而无需 Kerberos 委派。 将 SSL 与基本身份验证结合使用可确保在传输过程中加密登录名、密码和所有数据。 (无论使用的身份验证类型如何,都需要 SSL。有关 Web 同步最佳做法的详细信息,请参阅 配置 Web 同步中的“Web 同步安全最佳做法”部分。

使用“配置 Web 同步向导”配置运行 IIS 的计算机

  1. 在运行 IIS 的计算机上,启动 SQL Server Management Studio。

  2. 连接到发布服务器,然后展开服务器节点。

  3. 展开 “本地发布 ”文件夹,右键单击发布,然后单击“ 配置 Web 同步”。

  4. 在“配置 Web 同步向导”的 “订阅服务器类型 ”页上,选择 “SQL Server”。

  5. “Web 服务器 ”页上:

    1. 选择将同步订阅的 IIS 实例。

    2. 选择“ 创建新虚拟目录”。

    3. 在页面的下窗格中,展开 IIS 实例,展开 网站,然后单击 “默认网站”。

  6. “虚拟目录信息 ”页上:

    1. “别名 ”框中,输入虚拟目录的别名。

    2. “路径” 框中,输入虚拟目录的路径。 例如,如果在“别名”框中输入websync1,请在“路径”框中输入C:\Inetpub\wwwroot\websync1。 单击 “下一步”

    3. 在两个对话框中,单击“ ”。 这指定要创建新文件夹,并想要复制 SQL Server Internet Server API (ISAPI) DLL。 .

  7. “经过身份验证的访问 ”页上:

    1. 确保清除 Windows 域服务器的 集成 Windows 身份验证摘要式身份验证

    2. 选择 “基本身份验证”。

    3. “默认域领域” 框中,输入运行 IIS 的计算机的域。

  8. “目录访问 ”页上:

    1. 单击“ 添加”,然后在“ 选择用户或组 ”对话框中,添加订阅服务器将连接到 IIS 的帐户。 这些帐户将在“新建订阅向导”的 “Web 服务器信息 ”页上指定,或作为 sp_addmergepullsubscription_agent@internet_login 参数的值。
  9. “快照共享访问 ”页上,输入快照共享。 在此共享上设置适当的权限,以便订阅服务器可以访问快照文件。 有关共享权限的详细信息,请参阅 “保护快照文件夹”。

  10. 在“ 完成向导 ”页上,单击“ 完成”。

    如果发生故障(例如尝试配置运行 IIS 的远程计算机时出现网络错误),则会回滚所有已完成的作,并取消所有剩余作。 如果已完成的操作无法回滚,向导的最后一页中的状态将显示成功,并且已完成的操作将保持提交状态。

  11. 如果运行 IIS 的计算机在 64 位版本的 Windows 上运行,则必须将 replisapi.dll 复制到相应的目录:

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

    2. IIS 停止并重启后,将 <驱动器>:\Program Files\Microsoft SQL Server\120\COM\replisapi 复制到步骤 6b 中指定的目录 replisapi.dll。

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

    4. 在步骤 6b 中指定的目录中,执行以下命令:

      regsvr32 replisapi.dll

手动配置运行 IIS 的计算机

若要手动配置运行 IIS 的计算机,必须安装和配置 SQL Server 复制侦听器,然后为将连接到 IIS 的订阅服务器配置授权。

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

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

    重要

    强烈建议在 NTFS 文件系统分区而不是 FAT 文件系统上创建此目录。 使用 NTFS 文件系统时,可以使用 NTFS 文件系统权限精确控制可访问 SQL Server 复制的用户。

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

  3. 注册 replisapi.dll:

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

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

      regsvr32 replisapi.dll

  4. 创建新网站进行复制,或使用现有站点。 同步期间,复制组件将访问网站。 有关如何创建网站的详细信息,请参阅 IIS 文档。

  5. 在 IIS 上创建一个虚拟目录。 应在步骤 4 中创建的网站下创建虚拟目录,并应映射到步骤 1 中创建的目录。 有关如何创建虚拟目录的详细信息,请参阅 IIS 文档。 建议在向此目录分配权限时尽可能严格。 必须选择 “读取 ”和 “执行 ”权限,但可以清除 “运行脚本”、“ 写入”和 “浏览 ”权限。

  6. 配置 IIS 以允许执行 replisapi.dll。 步骤 4 中分配的权限足以满足早期版本的 IIS;但是,IIS 版本 6.0 要求启用 Internet Server API (ISAPI) 扩展。 有关详细信息,请参阅 IIS 6.0 文档中的“配置 ISAPI 扩展”和“启用和禁用动态内容”。

配置 IIS 身份验证

  • 当订阅服务器连接到 IIS 时,IIS 必须先对订阅服务器进行身份验证,然后才能访问资源和进程。 IIS 提供三种类型的身份验证:匿名、基本和集成。 身份验证可以应用于整个网站或您创建的虚拟目录。

    建议将基本身份验证与 SSL 配合使用。 无论使用的身份验证类型如何,都需要 SSL。 有关如何配置身份验证的详细信息,请参阅 IIS 文档。

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

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

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

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

配置帐户和权限

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

    1. 右键单击“我的电脑”,然后单击“管理”

    2. 计算机管理中,展开 “本地用户和组”。

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

    4. 输入用户名和强密码。

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

  2. 将帐户添加到IIS_WPG组:

    1. 计算机管理中,展开 “本地用户和组”,然后单击“ ”。

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

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

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

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

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

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

    1. 找到为 replisapi.dll创建的文件夹,右键单击该文件夹,然后单击“ 共享和安全”。

    2. 在“安全”选项卡上,单击“添加”

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

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

    5. 确保帐户仅授予 “读取”、“ 读取和执行”和 “列出文件夹内容” 权限。

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

    7. 单击 “确定”

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

    1. 单击 开始,然后单击 运行

    2. 在“打开”框中键入 ,然后单击“确定”inetmgr

    3. Internet Information Services (IIS) 管理器中,展开 本地计算机 节点。

    4. 右键单击 应用程序池,指向 “新建 ”,然后单击“ 应用程序池”。

    5. “应用程序池 ID ”字段中输入池的名称,然后单击“ 确定”。

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

    1. Internet Information Services (IIS) 管理器中,展开 本地计算机 节点,然后展开 应用程序池

    2. 右键单击已创建的应用程序池,然后单击“ 属性”。

    3. <ApplicationPoolName> 属性 对话框中的 “标识 ”选项卡上,单击“ 可配置”。

    4. “用户名和密码”字段中,输入在步骤 1 中创建的帐户和密码。

    5. 单击 “确定”

  6. 将应用程序池与用于 Web 同步的虚拟目录相关联:

    1. Internet Information Services (IIS) 管理器中,展开 本地计算机 节点,然后展开 网站

    2. 展开用于 Web 同步的网站,右键单击为 Web 同步创建的虚拟目录,然后单击“ 属性”。

    3. VirtualDirectoryName> 属性对话框的<“虚拟目录”选项卡上,从“应用程序池”下拉列表中选择在步骤 5 中创建的应用程序池。

    4. 单击 “确定”

测试与 replisapi.dll 的连接

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

测试与 replisapi.dll 的连接

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

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

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

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

    4. 如果使用代理服务器,请选择“将代理服务器用于您的局域网”“为本地地址绕过代理服务器”

    5. 单击 “确定”

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

  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 同步