我正在使用SQL Server 2005 CE框架3.5並試圖在我的手持和我的SQL Server之間使用合併複製。當我運行代碼進行同步時,它似乎永遠坐下來,當我在代碼中放置斷點時,它永遠不會超過對Synchronize()的調用。Sql Server CE 3.5合併複製同步掛起
如果我看一下sql server中的複製監視器,它會達到它表示訂閱不再同步並且不顯示任何錯誤的地步。因此,我假設這意味着同步完成。
http://server/virtualdirectory/sqlcesa35.dll?diag不報告任何問題。
這是我第一次嘗試任何手持設備的開發,所以我可能做了些傻事。但是,SQL Server似乎報告了成功的同步。
任何幫助將不勝感激,因爲我花了這麼多年!
這是我的代碼。
const string DatabasePath = @"SD Card\mydb.sdf";
var repl = new SqlCeReplication
{
ConnectionManager = true,
InternetUrl = @"http://server/virtualdirectory/sqlcesa35.dll",
Publisher = @"servername",
PublisherDatabase = @"databasename",
PublisherSecurityMode = SecurityType.DBAuthentication,
PublisherLogin = @"username",
PublisherPassword = @"password",
Publication = @"publicationname",
Subscriber = @"PPC",
SubscriberConnectionString = "Data Source=" + DatabasePath
};
try
{
Cursor.Current = Cursors.WaitCursor;
if (!File.Exists(DatabasePath))
{
repl.AddSubscription(AddOption.CreateDatabase);
}
repl.Synchronize();
MessageBox.Show("Successfully synchronised");
}
catch (SqlCeException e)
{
DisplaySqlCeErrors(e.Errors, e);
}
finally
{
repl.Dispose();
Cursor.Current = Cursors.Default;
}