我目前正在开发数据库和sql server数据库android(sqlite)之间的桥梁。
为此,我使用Web服务并使用存储在服务器IIS 7上的sqlce数据库过滤复制。为了开发它,我在我的电脑上使用了IIS Express。一切都在我的电脑上工作正常但是在部署时,复制数据库为每个同步创建一个新订阅(在IIS Express同步工作时无需创建新订阅),不会抛出任何异常,没有。
我不明白为什么IIS 7或IIS Express以不同的方式工作以同步数据库。
了解问题的原因?
我使用Sql replication ce 3.5 sp2,Sql server 2008 R2作为母数据库,IIS7。
我试过: - 使用网络服务器上的一个小软件复制母数据库,它的工作原理。 - 使用“SqlCeReplication.loadproperties”查找我的sqlce数据库参数以避免创建新订阅,它不起作用。
其他细节: - 当它第一次没有同步时,webservices不执行“repl.AddSubscription(AddOption.CreateDatabase)”,我已经检查过了。
以下是用于同步的代码:
' Define the server, publication, and database names.
Dim repl As SqlCeReplication = Nothing
Try
repl = New SqlCeReplication
repl.Publisher = PublisherName
repl.PublisherLogin = login
repl.PublisherPassword = password
repl.PublisherSecurityMode = SecurityType.DBAuthentication
repl.PublisherDatabase = My.Settings.DBName
repl.Publication = PublicationName
repl.InternetUrl = "https://iis.mydomain.com:444/sql/sqlcesa35.dll"
repl.InternetLogin = "sync"
repl.InternetPassword = "dfssd"
repl.Subscriber = "MobileApp - " & login
repl.SubscriberConnectionString = "Data Source=" & My.Settings.folderDB + "\" + subscriptionName + ".sdf"
If Not File.Exists(My.Settings.dossierBDD + "\" + subscriptionName + ".sdf") Then
repl.AddSubscription(AddOption.CreateDatabase)
End If
repl.Synchronize()
Catch err As SqlCeException
Finally
repl.Dispose()
repl = Nothing
End Try
提前致谢
答案 0 :(得分:0)
我发现自己的答案...... 我真的不知道为什么,但如果你想在sqlce上进行合并复制,你需要让IIS网站“加载用户配置文件”(在应用程序池上),否则每次都会创建订阅...