0

私は現在、データベースと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

前もって感謝します

4

1 に答える 1

0

私は自分自身に答えを見つけました...理由はよくわかりませんが、sqlceでマージレプリケーションを実行する場合は、IIS Webサイトに(アプリケーションプールで)「ユーザープロファイルの読み込み」を許可する必要があります。それ以外の場合、サブスクリプションは毎回作成...

于 2012-09-28T13:33:14.120 に答える