Visual Studio 2008 で 1 つのスマート デバイス プロジェクトを作成しました。デザイナー ウィザードを使用して、SQL Server DB (他のコンピューターに存在) と Compact DB (現在のアプリケーションに存在) の間の同期を作成しました。ウィザードは、WCF サービス ライブラリを使用してサーバー DB とやり取りしました。WCF の app.config で接続文字列を変更すると、上記のエラーが発生します。
私が最初に思いつくのは、デバイスがサーバー DB に接続できないということです。デバイス自体がサーバーへの接続を確立することを承認されていない場合、接続文字列が統合セキュリティを使用しているか、SQL ユーザー名とパスワードを含んでいるかは関係ありません。
この別の接続文字列を使用して、(Sync を使用せずに) サーバーに直接接続できますか?
例:
Private Function DatabaseConnect(ByVal connection As String) As DateTime
Dim dateTime As DateTime = New DateTime(1900, 1, 1)
Dim obj As New Object()
Using cmd As New SqlCommand("SELECT GETDATE();", New SqlConnection(connection))
cmd.Connection.Open()
obj = cmd.ExecuteScalar()
End Using
If (Not obj Is DBNull.Value) Then
dateTime = DirectCast(obj, DateTime)
End If
Return dateTime
End Function
もう 1 つの確認事項:接続している他のデータベースは同期をサポートしていますか? ここには、古い SQL 2000 データベースを含む複数のデータベースがあります。同期はサポートしていません。
プロジェクトを単純化して、エラーが発生している場所を絞り込んでください。
現在、ウィザード、同期、および WCF の使用に関して不明な点が多すぎます。