Vorgehensweise: Konfigurieren eines Abonnements zur Verwendung der Websynchronisierung (Replikationsprogrammierung mit Transact-SQL)

Das Verfahren in diesem Thema ist der dritte Schritt zur Konfiguration der Websynchronisierung für die Mergereplikation. Sie führen diesen Schritt aus, nachdem Sie die Veröffentlichung aktiviert und den Computer konfiguriert haben, auf dem Microsoft Internetinformationsdienste (Internet Information Services, IIS) ausgeführt werden. Eine Übersicht über den Konfigurationsprozess bietet Vorgehensweise: Konfigurieren der Websynchronisierung für die Mergereplikation (Replikationsprogrammierung mit Transact-SQL). Wenn Sie ein Abonnement zur Verwendung der Websynchronisierung für Abonnenten konfigurieren, die nur über HTTP eine Verbindung mit dem Verleger herstellen können, müssen Sie die Veröffentlichung ordnungsgemäß konfigurieren. Weitere Informationen finden Sie unter Vorgehensweise: Konfigurieren einer Veröffentlichung für die Websynchronisierung (Replikationsprogrammierung mit Transact-SQL). Nachdem Sie das Verfahren in diesem Thema durchgeführt haben, synchronisieren Sie das von Ihnen erstellte Abonnement. Weitere Informationen finden Sie unter Vorgehensweise: Synchronisieren eines Pullabonnements (Replikationsprogrammierung).

In diesem Thema werden die Parameter, die für die Websynchronisierung erforderlich sind, beschrieben. Weitere Informationen zum Erstellen von Pullabonnements finden Sie unter Vorgehensweise: Erstellen eines Pullabonnements (Replikationsprogrammierung mit Transact-SQL).

Wichtiger HinweisWichtig

Die URL des für die Websynchronisierung verwendeten Webservers (z. B. https://server.domain.com/directory/replisapi.dll) gibt den Speicherort der replisapi.dll an. Wenn der Server für die Verwendung eines Anschlusses konfiguriert ist, der nicht dem Standardport 443 für SSL (Secure Sockets Layer) entspricht, müssen Sie den Anschluss wie folgt angeben: https://server.domain.com:PortNumber/directory/replisapi.dll. Der Name des Servers in der URL muss mit dem Namen identisch sein, der beim Erstellen des Zertifikats verwendet wurde. In einem Intranet beispielsweise können Sie möglicherweise über https://server/ auf einen Webserver zugreifen. Wenn jedoch der vollqualifizierte Name (z. B. https://server.domain.com/) beim Erstellen des Zertifikats verwendet wurde, müssen Sie diesen vollqualifizierten Namen in der Webdienst-URL verwenden.

So konfigurieren Sie ein Abonnement für die Verwendung der Websynchronisierung

  1. Führen Sie auf dem Verleger sp_addmergesubscription aus. Geben Sie Werte für @publication, @subscriber, @subscriber_db und den Wert pull für @subscription_type an. Damit wird das Pullabonnement auf dem Verleger registriert.

  2. Zum Erstellen des Pullabonnements führen Sie auf dem Abonnenten sp_addmergepullsubscription aus und geben dabei Werte für @publication, @publisher und @publisher_db an.

  3. Führen Sie auf dem Abonnenten sp_addmergepullsubscription_agent aus, und geben Sie dabei Werte für @publisher, @publisher_db, @publication, den Wert 1 für @use_web_sync sowie Werte für die folgenden Parameter an:

    • @internet_url ist der Speicherort von replisapi.dll.

    • @internet_security_mode ist der Sicherheitsmodus, den der Merge-Agent beim Herstellen von Verbindungen zwischen dem Abonnenten und dem Computer verwendet, auf dem IIS ausgeführt wird. Der Wert 0 gibt an, dass die Standardauthentifizierung verwendet wird, und der Wert 1 (Standardwert) gibt an, dass die integrierte Windows-Authentifizierung verwendet wird.

    • @internet_login ist die Anmeldung, die der Merge-Agent beim Herstellen von Verbindungen mithilfe der Standardauthentifzierung zwischen dem Abonnenten und dem Computer verwendet, auf dem IIS ausgeführt wird.

    • @internet_password ist das Kennwort, das der Merge-Agent beim Herstellen von Verbindungen mithilfe der Standardauthentifzierung zwischen dem Abonnenten und dem Computer verwendet, auf dem IIS ausgeführt wird.

    HinweisHinweis

    Zum Synchronisieren eines Abonnements mithilfe der Websynchronisierung müssen sowohl die Aktualisierungsphase als auch die Downloadphase aktiviert sein.

So konfigurieren Sie ein Abonnement zur Verwendung der Websynchronisierung für Abonnenten, die nur mit HTTP über einen Webserver eine Verbindung mit einem Verleger herstellen können

  1. Zum Erstellen des Pullabonnements führen Sie auf dem Abonnenten sp_addmergepullsubscription aus und geben dabei den Wert anonymous für @subscriber_type sowie Werte für @publication, @publisher und @publisher_db an.

  2. Führen Sie auf dem Abonnenten sp_addmergepullsubscription_agent aus, und geben Sie dabei Werte für @publisher, @publisher_db, @publication, den Wert 1 für @use_web_sync sowie Werte für die folgenden Parameter an:

    • @internet_url ist der Speicherort von replisapi.dll.

    • @internet_security_mode ist der Sicherheitsmodus, den der Merge-Agent beim Herstellen von Verbindungen zwischen dem Abonnenten und dem Computer verwendet, auf dem IIS ausgeführt wird. Der Wert 0 gibt an, dass die Standardauthentifizierung verwendet wird, und der Wert 1 (Standardwert) gibt an, dass die integrierte Windows-Authentifizierung verwendet wird.

    • @internet_login ist die Anmeldung, die der Merge-Agent beim Herstellen von Verbindungen mithilfe der Standardauthentifizierung zwischen dem Abonnenten und dem Computer verwendet, auf dem IIS ausgeführt wird.

    • @internet_password ist das Kennwort, das der Merge-Agent beim Herstellen von Verbindungen mithilfe der Standardauthentifzierung zwischen dem Abonnenten und dem Computer verwendet, auf dem IIS ausgeführt wird.

    HinweisHinweis

    Zum Synchronisieren eines Abonnements mithilfe der Websynchronisierung müssen sowohl die Aktualisierungsphase als auch die Downloadphase aktiviert sein.

Beispiel

Im folgenden Beispiel wird ein Abonnement erstellt, das mithilfe der Websynchronisierung mit dem Verleger synchronisiert wird.

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @websyncurl AS sysname;
DECLARE @security_mode AS int;
DECLARE @login AS sysname;
DECLARE @password AS nvarchar(512);
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks';
SET @websyncurl = 'https://' + $(WebServer) + '/WebSync';
SET @security_mode = 0; -- Basic Authentication for IIS 
SET @login = $(Login);
SET @password = $(Password);

-- At the subscription database, create a pull subscription 
-- to a merge publication.
USE [AdventureWorksReplica]
EXEC sp_addmergepullsubscription 
    @publisher = @publisher, 
    @publication = @publication, 
    @publisher_db = @publicationDB;

-- Add an agent job to synchronize the pull subscription. 
EXEC sp_addmergepullsubscription_agent 
    @publisher = @publisher, 
    @publisher_db = @publicationDB, 
    @publication = @publication, 
    @distributor = @publisher, 
    @job_login = @login, 
    @job_password = @password,
    @use_web_sync = 1,
    @internet_security_mode = @security_mode,
    @internet_url = @websyncurl,
    @internet_login = @login,
    @internet_password = @password;
GO

USE [AdventureWorks]
GO

-- Execute this batch at the Publisher.
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'AdvWorksSalesOrdersMergeWebSync';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica';

-- At the Publisher, register the subscription, using the defaults.
EXEC sp_addmergesubscription 
    @publication = @publication, 
    @subscriber = @subscriber, 
    @subscriber_db = @subscriptionDB, 
    @subscription_type = N'pull';
GO

Im folgenden Beispiel wird ein Abonnement erstellt, das mithilfe der Websynchronisierung für einen Abonnenten, der nur mit HTTP über einen Webserver eine Verbindung mit dem Verleger herstellen kann, mit dem Verleger synchronisiert wird.

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

-- Publication must support anonymous Subscribers.
-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @websyncurl AS sysname;
DECLARE @security_mode AS int;
DECLARE @login AS sysname;
DECLARE @password AS nvarchar(512);
SET @publication = N'AdvWorksSalesOrdersMergeWebSync';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks';
SET @websyncurl = 'https://' + $(WebServer) + '/WebSync';
SET @security_mode = 0; -- Basic Authentication for IIS
SET @login = $(Login);
SET @password = $(Password);

-- At the subscription database, create a pull subscription 
-- to a merge publication.
USE [AdventureWorksReplica]
EXEC sp_addmergepullsubscription 
    @publisher = @publisher, 
    @publication = @publication, 
    @publisher_db = @publicationDB,
    @subscriber_type = N'anonymous';

-- Add an agent job to synchronize the pull subscription. 
EXEC sp_addmergepullsubscription_agent 
    @publisher = @publisher, 
    @publisher_db = @publicationDB, 
    @publication = @publication, 
    @distributor = @publisher, 
    @job_login = @login, 
    @job_password = @password,
    @use_web_sync = 1,
    @internet_security_mode = @security_mode,
    @internet_url = @websyncurl,
    @internet_login = @login,
    @internet_password = @password;
GO