Was this page helpful?
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Collapse the table of content
Expand the table of content
Expand Minimize

MergeSynchronizationAgent.DistributorSecurityMode Property


Gets or sets the security mode used when connecting to the Distributor.

Namespace:   Microsoft.SqlServer.Replication
Assembly:  Microsoft.SqlServer.Replication (in Microsoft.SqlServer.Replication.dll)

public virtual SecurityMode DistributorSecurityMode { get; set; }

Property Value

Type: Microsoft.SqlServer.Replication.SecurityMode

A SecurityMode value that represents the security mode.

When possible, use Windows Authentication.

If the value is Standard, the DistributorLogin and DistributorPassword properties must also be specified.

For a push subscription, the Merge Agent always connects to the Distributor locally by using Windows Integrated Authentication, and this property is ignored.

If the Distributor connection properties are not specified, it is assumed that the Publisher and Distributor are the same instance of SQL Server, and that Publisher connection properties will be used when connecting to the Distributor.

// Define the server, publication, and database names.
string subscriberName = subscriberInstance;
string publisherName = publisherInstance;
         string distributorName = distributorInstance;
         string publicationName = "AdvWorksSalesOrdersMerge";
string subscriptionDbName = "AdventureWorks2012Replica";
string publicationDbName = "AdventureWorks2012";
string hostname = @"adventure-works\garrett1";
string webSyncUrl = "https://" + publisherInstance + "/SalesOrders/replisapi.dll";

// Create a connection to the Subscriber.
ServerConnection conn = new ServerConnection(subscriberName);

MergePullSubscription subscription;
MergeSynchronizationAgent agent;

	// Connect to the Subscriber.

	// Define the pull subscription.
	subscription = new MergePullSubscription();
	subscription.ConnectionContext = conn;
	subscription.DatabaseName = subscriptionDbName;
	subscription.PublisherName = publisherName;
	subscription.PublicationDBName = publicationDbName;
	subscription.PublicationName = publicationName;

	// If the pull subscription exists, then start the synchronization.
	if (subscription.LoadProperties())
		// Get the agent for the subscription.
		agent = subscription.SynchronizationAgent;

		// Check that we have enough metadata to start the agent.
		if (agent.PublisherSecurityMode == null)
			// Set the required properties that could not be returned
			// from the MSsubscription_properties table. 
			agent.PublisherSecurityMode = SecurityMode.Integrated;
			agent.DistributorSecurityMode = SecurityMode.Integrated;
                     agent.Distributor = publisherName;
                     agent.HostName = hostname;

			// Set optional Web synchronization properties.
			agent.UseWebSynchronization = true;
			agent.InternetUrl = webSyncUrl;
			agent.InternetSecurityMode = SecurityMode.Standard;
			agent.InternetLogin = winLogin;
			agent.InternetPassword = winPassword;
		// Enable agent output to the console.
		agent.OutputVerboseLevel = 1;
		agent.Output = "";

		// Synchronously start the Merge Agent for the subscription.
		// Do something here if the pull subscription does not exist.
		throw new ApplicationException(String.Format(
			"A subscription to '{0}' does not exist on {1}",
			publicationName, subscriberName));
catch (Exception ex)
	// Implement appropriate error handling here.
	throw new ApplicationException("The subscription could not be " +
		"synchronized. Verify that the subscription has " +
		"been defined correctly.", ex);
Return to top
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2015 Microsoft