適用於:SQL Server
本文中的程序將指導您手動設定 Internet Information Services (IIS)第 7 版及更新版本,以用來進行合併式複寫的 Web 同步處理。
啟用 Web 同步處理需要三個步驟,第一個步驟是設定 IIS 7 或更新版本。
如需完整組態處理序的概觀,請參閱設定 Web 同步處理。
請確定您的應用程式只使用 .NET Framework 2.0 或更新版本,而且舊版的 .NET Framework 不會安裝在 IIS 伺服器上。 舊版 .NET Framework 可能會導致錯誤,例如:
The format of a message during Web synchronization was invalid. Ensure that replication components are properly configured at the Web server.
若要使用 Web 同步處理,您必須完成下列步驟來設定 IIS。 本文將詳細說明每個步驟。
在執行 IIS 的電腦上安裝及設定 SQL Server 複寫接聽程式。
設定傳輸層安全性 (TLS) (先前稱為安全通訊端層 (SSL))。 IIS 與所有訂閱者之間的通訊需要 TLS。
設定 IIS 驗證。
設定帳戶及 SQL Server 複寫接聽程式的權限。
安裝 SQL Server 複寫接聽程式
IIS 5.0 版開始支援 Web 同步處理。 IIS 5 和 6 版的 [設定 Web 同步處理精靈] 不適用於 IIS 7.0 版和更新版本。
注意
若要在 SQL Server 2012 (11.x) 和更新版本中的 IIS 伺服器上使用 Web 同步元件,您應該使用復寫安裝 SQL Server。 這包括免費的 SQL Server Express 版本。
安裝和設定 SQL Server 複寫接聽程式
在 IIS 電腦上安裝 SQL Server 複寫。
在執行 IIS 的電腦上,針對 replisapi.dll 建立新的檔案目錄。 您可以在任何位置建立該目錄,不過,建議您建立在 <磁碟機>:\Inetpub 目錄底下。 例如,您可以建立 <磁碟機>:\Inetpub\SQLReplication\ 目錄。
將 replisapi.dll 從目錄 <磁碟驅動器>:\Program Files\Microsoft SQL Server\nnn\COM\ 複製到您在步驟 1 中建立的檔案目錄。
註冊 replisapi.dll:
選取 [啟動],然後選取 [執行]。 在 [ 開啟] 方塊中,輸入 cmd,然後選取 [ 確定]。
在步驟 1 中建立的目錄中,執行下列命令:
regsvr32 replisapi.dll
建立新的網站以供複製,或使用現有的網站。 這個網站將在同步處理期間由複寫元件存取。 本文中的程式假設默認網站。 如需有關如何建立網站的詳細資訊,請參閱 IIS 文件集。
在 IIS 中建立虛擬目錄。 虛擬目錄應該在步驟 4 所建立的網站之下建立,而且應該對應至步驟 1 所建立的目錄。 指派此目錄的權限時,請盡可能嚴格。 您至少必須選取 [讀取] 和 [執行] 權限。
在 [Internet Information Services (IIS) 管理員] 的 [連線] 窗格中,以滑鼠右鍵按一下 [預設的網站] ,然後選取 [新增虛擬目錄] 。
針對 [別名],輸入
SQLReplication
。針對 [實體路徑],輸入 <drive>:\Inetpub\SQLReplication\,然後選取 [ 確定]。
設定 IIS,使 replisapi.dll 能夠執行。
在 [Internet Information Services (IIS) 管理員] 中,選取 [默認網站]。
在中央窗格中,選取 [ 處理程序對應]。
在[動作]窗格中,選取[新增模塊對應]。
針對 [要求路徑] ,輸入 replisapi.dll。
從 [ 模組 ] 下拉式清單中,選取 [IsapiModule]。
針對 可執行檔,輸入
<drive>:\Inetpub\SQLReplication\replisapi.dll
。針對 [名稱] ,輸入 Replisapi。
選取 [ 要求限制] 按鈕,選取 [ 存取] 索引卷標,然後選取 [ 執行]。
選取 [確定 ] 以關閉 [要求限制 ] 對話框,然後再次選取 [確定 ] 以關閉 [ 新增模塊對應 ] 對話方塊。 當系統提示您允許 ISAPI 擴充功能時,請選取 [ 是 ] 以新增擴充功能。
確認 Replisapi.dll 是否列於 [已啟用] 處理常式對應底下。 如果它位於 [停用 ] 列表中,請以滑鼠右鍵按下 Replisapi 專案,然後選取 [ 編輯功能許可權]。 核取 [ 執行] 方塊,然後選取 [ 確定]。
設定 IIS 驗證
當訂閱者電腦連接到 IIS 時,訂閱者必須經過 IIS 驗證才能存取資源和處理序。 驗證可套用至整個網站或您建立的虛擬目錄。
我們建議您搭配 TLS 使用基本驗證。 不論採用哪一種驗證類型,都需要 TLS。
設定 IIS 驗證
- 在 [Internet Information Services (IIS) 管理員] 中,選取 [默認網站]。
- 在中間窗格中,按兩下 [驗證] 。
- 以滑鼠右鍵按一下 [匿名驗證],然後選擇 [停用]。
- 以滑鼠右鍵按一下 [基本驗證],然後選擇 [啟用]。
設定安全套接字層
若要設定 TLS,請指定要由執行 IIS 之電腦使用的憑證。 合併式複寫的 Web 同步處理支援使用伺服器憑證,但不支援用戶端憑證。 若要設定 IIS 以進行部署,必須先從憑證授權中心 (CA) 獲得憑證。 如需有關憑證的詳細資訊,請參閱 IIS 文件集。
在您安裝憑證之後,必須將憑證與 Web 同步處理所使用的網站相關聯。 如果是為了開發和測試,您可以指定自我簽署憑證。 IIS 7 可以為您建立憑證並在電腦上註冊此憑證。
部署生產環境與此處提供之程式之間的差異在於,在生產階段和生產階段前測試中,您會使用 CA 簽發的憑證,而不是自我簽署憑證。
重要
不建議在生產安裝時使用自我簽署憑證。 自我簽署憑證不安全。 如果只是為了開發和測試,請使用自我簽署憑證。
若要設定 TLS,請執行下列步驟:
- 將網站設定為要求 TLS 並忽略用戶端憑證。
- 從 CA 取得憑證,或建立自我簽署憑證。
- 將憑證繫結至複寫網站。
要求網站具備 SSL 安全性
在 [Internet Information Services (IIS) 管理員] 中,展開本機伺服器節點,然後選取 預設網站(或您的網站同步網站,如果與預設網站不同)。
在中間窗格中,按兩下 [SSL 設定] 。
核取 [必須使用 SSL] 選項。 在 [用戶端憑證] 底下,確認已選取 [略過] 按鈕。
建立自我簽署憑證以進行測試
在 [Internet Information Services (IIS) 管理員] 中,選取本地伺服器節點,然後在中央窗格中按兩下 [伺服器憑證]。
在 [ 動作] 窗格中,選取 [ 建立 Self-Signed 憑證]。
在 [ 建立 Self-Signed 憑證 ] 對話框中,輸入憑證的名稱,然後選取 [ 確定]。
將憑證系結至網站
在 [ 連線] 窗格中,選取 [默認網站 ] (或您的網站同步處理網站,如果與默認網站不同的話)。
在 [ 動作] 窗格中,選取 [ 系結],然後選取 [ 新增]。 [新增網站繫結] 對話框隨即出現。
從 [ 類型 ] 下拉式清單中,選取 [https]。 保留 [IP 位址] 和 [連接埠] 的預設設定。
從 [SSL 憑證 ] 下拉式清單中,選取 [若要建立自我簽署憑證以進行測試] 中建立的憑證,請選取 [ 確定],然後選取 [ 關閉]。
測試憑證
在 [Internet Information Services (IIS) 管理員] 中,選取 [默認網站]。
從 [動作] 窗格中選取 [瀏覽 *:443(https)]。
Internet Explorer 隨即開啟,並顯示「此網站的安全性憑證發生問題」訊息。此警告會告訴您相關聯的憑證不是由已辨識的 CA 所簽發,而且可能不值得信任。 這是預期的警告,因此請選取 [繼續前往此網站](不建議使用)。
如果系統提示您連線 到localhost,請輸入使用者名稱和密碼以繼續進行。 此時,您應該會看到網站的預設頁面。
設定 SQL Server 複寫接聽程式的許可權
當訂閱者電腦連接到執行 IIS 的電腦時,系統會利用您先前設定 IIS 時所指定的驗證類型來驗證訂閱者。 IIS 驗證訂閱者之後,會檢查訂閱者是否已獲得叫用 SQL Server 複寫的授權。 您可藉由設定 replisapi.dll 的權限來控制可以叫用 SQL Server 複寫的使用者。 您必須正確設定權限,才能避免未經授權的使用者存取 SQL Server 複寫。
若要針對 SQL Server 複寫接聽程式執行時使用用的帳戶設定最低權限,請完成下列程序。 下列程式中的步驟適用於執行 IIS 7.0 的 Windows Server 2008。
除了執行下列步驟之外,請確保所需的登入位於發行集存取清單 (PAL) 中。 如需有關 PAL 的更多資訊,請參閱保護發行者。
重要
本節中創建的帳戶是在同步期間用來連接到發佈者和分發者的帳戶。 該帳戶必須在發佈和散發伺服器上新增為 SQL 登入帳戶。
用於 SQL Server 複寫接聽程式的帳戶必須具有在 合併代理程式安全性 一文中「連接到發行者或散發者」一節所述的許可權。
總而言之,此帳戶必須:
- 成為出版物存取清單 (PAL) 的成員。
- 對應到出版資料庫中與某位使用者相關聯的登入。
- 對應至與散發資料庫中之使用者相關聯的登入。
- 擁有快照共享的讀取權限。
設定帳戶和許可權
在執行 IIS 的電腦上建立本機帳戶:
開啟 [伺服器管理員] 。 從 [開始] 功能表中,以滑鼠右鍵按兩下 [ 計算機],然後選取 [ 管理]。
在 [伺服器管理員] 中,展開 [設定] ,然後展開 [本機使用者和群組] 。
以滑鼠右鍵按一下 [使用者],然後選取 [新增使用者]。
輸入使用者名稱與增強式密碼。 清除 [使用者必須在下次登入時變更密碼] 。
選取 建立,然後選取 關閉。
將此帳戶加入至 IIS_IUSRS 群組:
在 [伺服器管理員] 中,依序展開 [ 設定]、[ 本機使用者和群組],然後選取 [ 群組]。
以滑鼠右鍵按兩下 IIS_IUSRS,然後選取[ 新增至群組]。
在 [IIS_IUSRS屬性 ] 對話框中,選取 [ 新增]。
在 [選取使用者、電腦或群組] 對話方塊中,加入在步驟 1 建立的帳戶。
確認 [從這個位置] 顯示本機電腦的名稱 (而非網域)。 如果此欄位未顯示本機電腦名稱,請選取 [ 位置]。 在 [ 位置] 對話框中,選取本機計算機,然後選取 [ 確定]。
在 [ 選取使用者 ] 對話框和 [IIS_IUSRS屬性 ] 對話框中,選取 [確定]。
將帳戶的最低權限授予包含 replisapi.dll 的資料夾:
在 Windows 檔案總管中,以滑鼠右鍵按兩下您為 replisapi.dll建立的資料夾,然後選取 [ 屬性]。
在 [ 安全性] 索引標籤上,選取 [編輯]。
在 [資料夾名稱>的許可權<] 對話框中,選取 [新增] 以新增您在步驟 1 中建立的帳戶。
確認 [從這個位置] 顯示本機電腦的名稱 (而非網域)。 如果此欄位未顯示本機電腦名稱,請選取 [ 位置]。 在 [ 位置] 對話框中,選取本機計算機,然後選取 [ 確定]。
確認只將讀取、讀取與執行和列出資料夾內容權限授與這個帳戶。
選取不需要存取目錄的任何使用者或群組,選取 [移除],然後選取 [ 確定]。
在 [Internet Information Services (IIS) 管理員] 中建立應用程式集區:
在 [Internet Information Services (IIS) 管理員] 的 [連線] 窗格中,展開本機伺服器節點。
以滑鼠右鍵按兩下 [應用程式集區],然後選取 [新增應用程式集區]。
輸入應用程式集區的名稱、保留其餘欄位的預設值,然後選取 [ 確定]。
如果您預期有超過兩個的同步處理用戶端,可能需要考慮建立 Web Garden。 如需詳細資訊,請參閱 建立 Web 花園。
將帳戶與應用程式集區相關聯:
在 [Internet Information Services (IIS) 管理員] 中,展開本地伺服器節點,然後選取 [ 應用程式集區]。
以滑鼠右鍵按下您建立的應用程式集區,然後選取 [ 設定應用程式集區預設值]。
在 [ 應用程式集區預設值 ] 對話框中,向下捲動至 [ 進程模型 ] 區段,然後選取 [ 識別 ] 字段。
選取 [ 身分識別 ] 數據列右側的省略號按鈕。
選取 [ 自定義帳戶] 單選按鈕,然後選取 [ 設定]。
在 [使用者名稱和密碼] 字段中,輸入步驟 1 中建立的帳戶和密碼,然後選取 [確定]。
選取 [確定 ] 以關閉 [應用程式集區識別 ] 對話框,然後再次選取 [確定 ] 以關閉 [應用程式集區預設值 ] 對話框。
讓應用程式集區與複寫網站產生關聯:
在 [Internet Information Services (IIS) 管理員] 中,展開本機伺服器節點,然後選取 [預設網站](如果您的網站同步處理網站與預設網站不同,請選擇您的網站同步處理網站)。
在 [ 動作] 窗格的 [ 管理網站] 底下,選取 [ 進階設定]。
在 [ 進階設定] 對話框中,選取 應用程式集區右邊的省略號按鈕。
從 [ 應用程式集區] 下拉式清單中,選取您在步驟 4 中建立的應用程式集區,然後選取 [ 確定]。
再次選取 [確定 ] 以關閉 [進階設定]。
測試與replisapi.dll
的連線
在診斷模式下執行 Web 同步處理,以測試執行 IIS 的電腦連接,並確定 TLS/SSL 憑證已正確安裝。 若要在診斷模式下執行 Web 同步處理,您必須是執行 IIS 之電腦上的管理員。
確定訂閱者端的區域網路 (LAN) 設定正確:
在 Internet Explorer 的 [工具] 選單上,選取 [因特網選項]。
在 [ 連線] 索引標籤上,選取 [ LAN 設定]。
如果未在 LAN 上使用 Proxy 伺服器,請清除 [ 自動偵測設定 ] 並使用 您 LAN 的 Proxy 伺服器。
如果使用 Proxy 伺服器,請選取 [ 為您的 LAN 使用 Proxy 伺服器 ] 和 [ 略過本機位址的 Proxy 伺服器],然後選取 [ 確定]。
在訂閱者端的 Internet Explorer 中,將
?diag
附加至 replisapi.dll 的位址,以便在診斷模式下連接伺服器。 例如:https://<server.domain.com>/directory/replisapi.dll?diag
。在上一個範例中,
<server.domain.com>
應該以 IIS 管理員中 [伺服器憑證] 區段底下所列的確切 [發行至] 名稱取代。如果 Windows作系統無法辨識您為 IIS 指定的憑證,[ 安全性警示 ] 對話框隨即出現。 此警示可能會發生,因為憑證是測試憑證,或憑證是由 Windows 無法辨識的證書頒發機構單位 (CA) 所簽發。
如果此對話框未出現,請確定您要存取之伺服器的憑證已新增至訂閱者端的證書存儲,做為受信任的憑證。 如需有關匯入憑證的詳細資訊,請參閱 IIS 文件集。
在 [ 安全性警示] 對話框中,選取 [ 檢視憑證]。
在 [ 憑證] 對話框的 [ 一般 ] 索引標籤上,選取 [ 安裝憑證]。
完成「憑證匯入精靈」,以接受預設值。
在 [ 安全性警告] 對話框中,選取 [ 是]。
在 [憑證匯入精靈] 確認對話框中,選取 [確定]。
關閉 [憑證] 對話方塊。
在 [ 安全性警示] 對話框中,選取 [ 是]。
將為使用者安裝憑證。 這項處理序必須針對將與 IIS 同步處理的每位使用者執行。
在 [連接到 <伺服器名稱>] 對話方塊中,指定合併代理程式用於連接至 IIS 的登入和密碼。 也可以在「新增訂閱精靈」中指定這些認證。
在名為 SQL Websync 診斷資訊的 Internet Explorer 視窗中,確認頁面上每個 [狀態 ] 資料行中的值是
SUCCESS
。確定憑證已正確安裝於訂閱者端:
關閉 Internet Explorer,然後再重新開啟。
在診斷模式下連接到伺服器。 如果憑證已正確安裝,則不會出現 [安全性警示] 對話方塊。 如果對話框出現,當合併代理程式嘗試連線到執行 IIS 的計算機時,就會失敗。 您必須確定您要存取之伺服器的憑證已新增至訂閱者端的證書存儲做為受信任的憑證。 如需有關匯入憑證的詳細資訊,請參閱 IIS 文件集。