Получение данных с сервера Couchbase на coubase lite с помощью syncgateway в консольном приложении C# - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь создать простое консольное приложение в. Net (Windows машина), которое подключается

couchbase lite -> syn c -gateway -> couchbase server (hosted на удаленном компьютере).

, но данные не передаются с сервера на lite.

Вот пример кода, который я использую -

class Program
{
static void Main(string argss)
{
    // Get the database (and create it if it doesn't exist)
    var database = new Database("testdb");         

    // Create replicator to push and pull changes to and from the cloud
    var targetEndpoint = new URLEndpoint(new Uri("ws://localhost:4984/testdb"));
    var replConfig = new ReplicatorConfiguration(database, targetEndpoint);

    // Add authentication
    replConfig.Authenticator = new BasicAuthenticator("System", "welcome");


    // Create replicator (make sure to add an instance or static variable
    // named _Replicator)
    Replicator _Replicator = new Replicator(replConfig);
    _Replicator.AddChangeListener((sender, args) =>
    {
        if (args.Status.Error != null)
        {
            Console.WriteLine($"Error :: {args.Status.Error}");
        }
    });

    _Replicator.Start();


    // Later, stop and dispose the replicator *before* closing/disposing the database


    using (var query = QueryBuilder.Select(SelectResult.All())
        .From(DataSource.Database(database)))
    {
        // Run the query
        Console.WriteLine($"Query :: {query.ToString()}");
        var result = query.Execute();
        Console.WriteLine($"Result ::  {result.Count()}");
    }
}

ниже - конфигурация, которую я использую для sync_gateway -

{
"log": ["*"],
"databases": {
"testdb": {
  "server": "http://167.87.206.28:8091",
  "bucket": "Test",
  "username": "System", 
  "password": "welcome", 
  "enable_shared_bucket_access": true, 
  "import_docs": true,
  "num_index_replicas": 0, 
  "users": {
    "GUEST": { "disabled": false, "admin_channels": ["*"] }
  },
  "sync": `function (doc, oldDoc) {
    if (doc.sdk) {
      channel(doc.sdk);
    }
  }`
}
}
}

Я запускаю sync_gateway с помощью команды -

C:\Program Files\Couchbase\Sync Gateway>sync_gateway.exe ~path\sync-gateway-config.json

, когда пытаюсь запустить консольное приложение, Data не извлекается из сервера и получает ошибки ниже в консоли -

enter image description here

не уверен, что происходит не так. Любые выводы будут оценены!

1 Ответ

0 голосов
/ 07 апреля 2020

Добавить пользователя 1 в конфигурации sg:

"users": {
    "user1": {"password": "pass", "admin_channels": ["*"]},
    "GUEST": { "disabled": true, "admin_channels": ["*"] }
  }

и

// Add authentication
replConfig.Authenticator = new BasicAuthenticator("user1", "pass");
...