Nasıl yapılır: Web eşitleme (rmo programlama) izin vermek için yayını yapılandırma
Bu konudaki yordam, yapılandırma Web üzerinden eşitleme için birleştirme ilk adımdır çoğaltma.Yapılandırma işlemine genel bakış için bkz: Nasıl yapılır: Birleştirme çoğaltma (rmo programlama) Web eşitleme Yapılandır.Bu konudaki yordamları tamamladıktan sonra IIS sunucusunu yapılandırma ikinci adıma geçin.İkinci adımda anlatılan Nasıl yapılır: IIS Web eşitleme Yapılandır.
Bu konuda tarafından Web üzerinden eşitleme için gerekli olan parametreleri açıklar.Yayınları oluşturma hakkında daha fazla bilgi için bkz: Nasıl yapılır: Bir yayını (rmo programlama) oluştur.
Web üzerinden eşitleme için izin vermek için birleştirme yayın yapılandırmak için
Bir bağlantı oluşturmak Yayımcı kullanarak ServerConnection WalkTree
Oluşturma bir örnek , ReplicationDatabase sınıfı için yayın veritabanı.
Set ConnectionContext örnek için özellik ServerConnection Adım 1.
Call LoadProperties yöntem.Bu yöntem döndürür, false, veritabanı varolduğundan emin olun.
If the EnabledMergePublishing property is false, set this property to true, and then call CommitPropertyChanges.
Örneğini MergePublication , sınıf ve sonra küme bu nesne için aşağıdaki özellikleri:
The ServerConnection from step 1 for ConnectionContext.
Yayımlanmış bir veritabanı için adı DatabaseName.
Yayın için bir ad Name.
Değerleri ekleyin AllowWebSynchronization ve AllowPull için Attributes dahil mantıksal or kullanarak işleç (| Visual C# içinde ve Or Visual Basic). Web üzerinden eşitleme etkinleştirmek için
(İsteğe bağlı) Aboneleri yalnızca bağlantı kuracak, Yayımcı http değer ekleme AllowAnonymous için Attributes mantıksal or işlecini dahil kullanarak (| Visual C# içinde ve Or Visual Basic).
Anlık Görüntü Aracısı çalıştığı Windows hesabı kimlik bilgileri bilgilerini sağlamak için yeni bir yayın küme Login ve Password alanları, SnapshotGenerationAgentProcessSecurity.Windows kimlik doğrulaması kullanıldığında, anlık görüntü Aracısı bağlantıları için yerel Dağıtımcı ve tüm uzak bağlantılar için yaptığında, bu hesap da kullanılır.
Not
üye tarafından yayın oluşturulduğunda sysadmin sabit sunucu rolü, size gerekmez küme SnapshotGenerationAgentProcessSecurity.Daha fazla bilgi için bkz: Çoğaltma aracısı güvenlik modeli.
Aşağıdaki yöntemlerden birini arayın:
Etkin Web üzerinden eşitleme'yle birlikte bir yayın oluşturmak için yeni bir yayın için çağrı Create.
Varolan yayın, Web üzerinden eşitleme etkinleştirmek için arama CommitPropertyChanges.
Örnek
Aşağıdaki örnek Web üzerinden eşitleme için etkinleştirilmiş bir yayın oluşturur.
// Set the Publisher, publication database, and publication names.
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2008R2";
ReplicationDatabase publicationDb;
MergePublication publication;
// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);
try
{
// Connect to the Publisher.
conn.Connect();
// Enable the database for merge publication.
publicationDb = new ReplicationDatabase(publicationDbName, conn);
if (publicationDb.LoadProperties())
{
if (!publicationDb.EnabledMergePublishing)
{
publicationDb.EnabledMergePublishing = true;
}
}
else
{
// Do something here if the database does not exist.
throw new ApplicationException(String.Format(
"The {0} database does not exist on {1}.",
publicationDb, publisherName));
}
// Set the required properties for the merge publication.
publication = new MergePublication();
publication.ConnectionContext = conn;
publication.Name = publicationName;
publication.DatabaseName = publicationDbName;
// Enable Web synchronization, if not already enabled.
if ((publication.Attributes & PublicationAttributes.AllowWebSynchronization) == 0)
{
publication.Attributes |= PublicationAttributes.AllowWebSynchronization;
}
// Enable pull subscriptions, if not already enabled.
if ((publication.Attributes & PublicationAttributes.AllowPull) == 0)
{
publication.Attributes |= PublicationAttributes.AllowPull;
}
// Enable Subscriber requested snapshot generation.
publication.Attributes |= PublicationAttributes.AllowSubscriberInitiatedSnapshot;
// Enable anonymous access for Subscribers that cannot make a direct connetion
// to the Publisher.
publication.Attributes |= PublicationAttributes.AllowAnonymous;
// Specify the Windows account under which the Snapshot Agent job runs.
// This account will be used for the local connection to the
// Distributor and all agent connections that use Windows Authentication.
publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin;
publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword;
// Explicitly set the security mode for the Publisher connection
// Windows Authentication (the default).
publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = true;
if (!publication.IsExistingObject)
{
// Create the merge publication and the Snapshot Agent job.
publication.Create();
publication.CreateSnapshotAgent();
}
else
{
throw new ApplicationException(String.Format(
"The {0} publication already exists.", publicationName));
}
}
catch (Exception ex)
{
// Implement custom application error handling here.
throw new ApplicationException(String.Format(
"The publication {0} could not be created.", publicationName), ex);
}
finally
{
conn.Disconnect();
}
' Set the Publisher, publication database, and publication names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2008R2"
Dim publicationDb As ReplicationDatabase
Dim publication As MergePublication
' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)
Try
' Connect to the Publisher.
conn.Connect()
' Enable the database for merge publication.
publicationDb = New ReplicationDatabase(publicationDbName, conn)
If publicationDb.LoadProperties() Then
If Not publicationDb.EnabledMergePublishing Then
publicationDb.EnabledMergePublishing = True
End If
Else
' Do something here if the database does not exist.
Throw New ApplicationException(String.Format( _
"The {0} database does not exist on {1}.", _
publicationDb, publisherName))
End If
' Set the required properties for the merge publication.
publication = New MergePublication()
publication.ConnectionContext = conn
publication.Name = publicationName
publication.DatabaseName = publicationDbName
' Enable Web synchronization, if not already enabled.
If (publication.Attributes And PublicationAttributes.AllowWebSynchronization) = 0 Then
publication.Attributes = publication.Attributes _
Or PublicationAttributes.AllowWebSynchronization
End If
' Enable pull subscriptions, if not already enabled.
If (publication.Attributes And PublicationAttributes.AllowPull) = 0 Then
publication.Attributes = publication.Attributes _
Or PublicationAttributes.AllowPull
End If
' Enable Subscriber requested snapshot generation.
publication.Attributes = publication.Attributes _
Or PublicationAttributes.AllowSubscriberInitiatedSnapshot
' Enable anonymous access for Subscribers that cannot
' make a direct connetion to the Publisher.
publication.Attributes = publication.Attributes _
Or PublicationAttributes.AllowAnonymous
' Specify the Windows account under which the Snapshot Agent job runs.
' This account will be used for the local connection to the
' Distributor and all agent connections that use Windows Authentication.
publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin
publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword
' Explicitly set the security mode for the Publisher connection
' Windows Authentication (the default).
publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = True
If Not publication.IsExistingObject Then
' Create the merge publication and the Snapshot Agent job.
publication.Create()
publication.CreateSnapshotAgent()
Else
Throw New ApplicationException(String.Format( _
"The {0} publication already exists.", publicationName))
End If
Catch ex As Exception
' Implement custom application error handling here.
Throw New ApplicationException(String.Format( _
"The publication {0} could not be created.", publicationName), ex)
Finally
conn.Disconnect()
End Try