0

SQL CE 3.5 SP1 データベースを複製しようとしていますが、同期時に次のエラーがスローされます。

「提供された接続情報で SQL Server に接続できませんでした。SQL Server が存在しません。IIS ユーザーが SQL Server を実行しているコンピューターで有効なユーザーではないか、パスワードが正しくないため、アクセスが拒否されました。」

Windows Mobile 6 Professional エミュレーターを使用していますが、接続しようとしているマシンは、Windows XP Professional SP3 を実行している Windows 仮想マシンです。エミュレーターのネットワーク アダプター設定を構成し (Web ページにアクセスできます)、ユーザーのアクセス許可を確認し、IIS 設定を 2 回チェックし、接続文字列を 3 回チェックしました。

            SqlCeReplication rpl = null;

        try
        {
            // Creates the replication object.
            rpl = new SqlCeReplication();
            // Establishes the connection string.
            rpl.SubscriberConnectionString = @"Data Source = \Program Files\ParkSurvey\ParkSurvey.sdf; Password = *; Temp File Max Size = 512; 
            Max Database Size = 512; Max Buffer Size = 512; Flush Interval = 20; Autoshrink Threshold = 10; Default Lock Escalation = 100";
            // Sets the Publisher properties.
            rpl.PublisherSecurityMode = SecurityType.NTAuthentication;
            rpl.Publisher = "PUBLISHER";
            rpl.PublisherLogin = "INDICOPUBLIC\\subuser";
            rpl.PublisherPassword = "*";
            rpl.PublisherDatabase = "PUBLISHER";
            rpl.Publication = "ParkSurveyPublication";
            // Sets the internet replication properties.
            rpl.InternetUrl = "http://replication/sqlce/sqlcesa35.dll";
            rpl.InternetLogin = "INDICOPUBLIC\\subuser";
            rpl.InternetPassword = "*";
            rpl.ConnectionManager = true;
            // Sets the Distributor properties.
            rpl.Distributor = "PUBLISHER";
            rpl.DistributorLogin = "INDICOPUBLIC\\subuser";
            rpl.DistributorPassword = "psrAdmin";
            rpl.DistributorSecurityMode = SecurityType.NTAuthentication;
            // Sets the timeout properties.
            rpl.ConnectionRetryTimeout = 120;
            rpl.ConnectTimeout = 6000;
            rpl.ReceiveTimeout = 6000;
            rpl.SendTimeout = 6000;
            // Sets the Subscriber properties.
            rpl.Subscriber = "ParkSurveySubscriber";
            rpl.HostName = "Mobile1";
            rpl.CompressionLevel = 6;
            rpl.ExchangeType = ExchangeType.BiDirectional;
            // Call the replication methods.
            rpl.Synchronize();

        }
        catch (SqlCeException sqlEx)
        {
            MessageBox.Show(sqlEx.Message);
        }
        finally
        {
            // Disposing the replication object
            if (rpl != null)
            {
                rpl.Dispose();
            }
        }

また、モバイル エミュレーターのファイル エクスプローラーでホスト コンピューター自体を開こうとしたところ、「ネットワーク パスが見つかりませんでした」というメッセージが表示されました。これにより、エミュレータ自体の ActiveSync の問題であると思われます。誰かアドバイスはありますか?

4

1 に答える 1

0

ホスト名の代わりに IP アドレスを試し、デバイスの IE からエージェント URL をテストします。DB サーバーが SQL 2012 の場合は、すべてのコンポーネントで 3.5 SP2 の最新ビルドを使用してください。

于 2012-05-09T07:34:51.203 に答える