私は現在、データベースとSQLサーバーデータベースandroid(sqlite)の間のブリッジを開発しています。
これを行うには、Webサービスを使用し、サーバーIIS 7に格納されているsqlceデータベースでレプリケーションをフィルター処理します。これを開発するために、PCでIISExpressを使用しました。私のPCではすべてが正常に機能しますが、デプロイされると、レプリケートされたデータベースは同期ごとに新しいサブスクリプションを作成します(IIS Expressの同期では、新しいサブスクリプションを作成せずに機能します)。例外はスローされません。
IIS7またはIISExpressがデータベースを同期するために異なる方法で機能する理由がわかりません。
問題の理由のアイデア?
私はSQLレプリケーションce3.5sp2、SQL Server 2008 R2をマザーデータベース、IIS7として使用しています。
私は次のことを試みました:-ウェブサーバー上の小さなソフトウェアでマザーデータベースを複製します、それは動作します。-「SqlCeReplication.loadproperties」を使用してsqlceデータベースパラメータを検索し、新しいサブスクリプションの作成を回避します。これは機能しません。
その他の詳細:-初めて同期しない場合、Webサービスは「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
前もって感謝します