我有一個SQL 2008 R2服務器。 我已經創建了一個使用嚮導的出版物,似乎沒問題。 「系統數據庫」部分有一個「分佈」數據庫,其中沒有太多內容。 (不知道這是否已經存在,或者「發佈嚮導」是否已經創建了它。) 我已經安裝了網絡同步並且可以通過IIS7和自簽名證書訪問relisapi.dll。SQL Server 2008通過網絡同步複製到SQL Express 2005
我的ASP.NET網站安裝程序安裝SQL Express 2005. 我寫了一個小網站來測試訂閱和初始同步的創建。 我不會「創建初始」數據庫,因爲我假設第一個同步將從服務器拉下所有內容。
以下幾行代碼似乎可行,因爲預訂是在SQL 2008服務器中的SQL Express &中創建的。
' Define the pull subscription.
subscription = New MergePullSubscription()
subscription.ConnectionContext = subscriberConn
subscription.PublisherName = publisherName
subscription.PublicationName = publicationName
subscription.PublicationDBName = publicationDbName
subscription.DatabaseName = subscriptionDbName
subscription.HostName = hostname
subscription.CreateSyncAgentByDefault = True
' Specify the Windows login credentials for the Merge Agent job.
subscription.SynchronizationAgentProcessSecurity.Login = winLogin
subscription.SynchronizationAgentProcessSecurity.Password = winPassword
' Enable Web synchronization.
subscription.UseWebSynchronization = True
subscription.InternetUrl = webSyncUrl
' Specify the same Windows credentials to use when connecting to the
' Web server using HTTPS Basic Authentication.
subscription.InternetSecurityMode = AuthenticationMethod.BasicAuthentication
subscription.InternetLogin = winLogin
subscription.InternetPassword = winPassword
If Not subscription.LoadProperties() Then
' Create the pull subscription at the Subscriber.
subscription.Create()
然後我運行這段代碼:
If Not subscription.PublisherSecurity Is Nothing Or _
subscription.DistributorSecurity Is Nothing Then
'0: Only error messages are logged.
'1: All progress report messages are logged.
'2: All progress report messages and error messages are logged.
subscription.SynchronizationAgent.OutputVerboseLevel = 2
subscription.SynchronizationAgent.Output = "c:\createmerge.txt"
' Synchronously start the Merge Agent for the subscription.
subscription.SynchronizationAgent.Synchronize()
但syncronize引發錯誤:
The subscription to publication 'My publication' could not be verified. Ensure that all Merge Agent command line parameters are specified correctly and that the subscription is correctly configured. If the Publisher no longer has information about this subscription, drop and recreate the subscription.
在服務器上,使用 「複製監視器」 它顯示我的訂閱作爲「單元化」。
我認爲一個問題是,我的subscription.HostName是錯誤的。 MSDN上的微軟例子說
"adventure-works\garrett1"
但冒險的作品是否是服務器,實例或數據庫,誰是garrett1(登錄或別的東西),目前尚不清楚。那實際上應該是什麼呢?
因爲我對複製一無所知,而且我一直在關注MSDN和一些書籍,所以我會認真考慮下一步該怎麼做。
對不起,這麼久了!