Мы только что обновили нашу SyncGatewaty до версии 2.1. Так что теперь я рефакторинг нашего клиентского кода для использования CouchbaseLite 2.1. Когда я пытаюсь повторить, я получаю ошибку:
Ошибка LiteCore: не найдено (6/404)
Изначально я получил ошибку при подключении к нашему Dev-серверу, а затем установил локальную копию clean
на свой ноутбук, и при попытке подключиться к нему я получаю ту же ошибку.
Вход:
ИНФОРМАЦИЯ) Couchbase 2019-01-10T10: 56: 47.8503147-07: 00 (Запуск) [1] CouchbaseLite / 2.1.2 (.NET; Microsoft Windows 10.0.17763) Build / 13 LiteCore / (15) Commit / 9aebf28
ПРЕДУПРЕЖДЕНИЕ) LiteCore 2019-01-10T10: 56: 48.1943139-07: 00 {C4SocketImpl # 1} ==> class litecore :: repl :: C4SocketImpl ws: //localhost.com: 443 // _ blipsync
ПРЕДУПРЕЖДЕНИЕ) LiteCore 2019-01-10T10: 56: 48.1943139-07: 00 {C4SocketImpl # 1} Неожиданное или нечистое отсоединение разъема! (причина = статус WebSocket, код = 404)
ОШИБКА) Sync 2019-01-10T10: 56: 48.1993137-07: 00 {Repl # 2} ==> class litecore :: repl :: Replicator c: \ temp \ content_meta_data.cblite2 \ -> ws: // локальный: 443 // _ blipsync
ОШИБКА) Sync 2019-01-10T10: 56: 48.1993137-0
7:00 {Repl # 2} Ошибка LiteCore: не найдено (6/404)
Мой код:
using System;
using System.IO;
using Couchbase.Lite;
using Couchbase.Lite.Support;
using Couchbase.Lite.Sync;
using NLog;
namespace ReplicatorExample
{
public class DatabaseManager
{
private static readonly Logger _log = LogManager.GetCurrentClassLogger();
public const string BUCKET_CONTENT_META_DATA = "content_meta_data";
private static DatabaseManager _instance;
public static DatabaseManager GetInstance()
{
NetDesktop.Activate();
NetDesktop.EnableTextLogging("logs");
return _instance ?? (_instance = new DatabaseManager());
}
public void InitializeBuckets()
{
try
{
var defaultAuthenticator = GetDefaultAuthenticator();
var dirInfo = new DirectoryInfo($"c:\\temp\\{BUCKET_CONTENT_META_DATA}");
if (!dirInfo.Parent.Exists)
{
dirInfo.Parent.Create();
}
var database = new Database(dirInfo.FullName);
// Create replicator to push and pull changes to and from the cloud
var targetEndpoint = new URLEndpoint(new Uri("ws://localhost:4985"));
var replConfig = new ReplicatorConfiguration(database, targetEndpoint)
{
Authenticator = defaultAuthenticator,
Continuous = true,
//Channels = new List<string>
//{
// "approved",
//
//}
};
var replicator = new Replicator(replConfig);
replicator.AddChangeListener((sender, args) =>
{
if (args.Status.Error != null)
{
_log.Error($"{args.Status.Error}");
}
else
{
_log.Debug(args.Status);
}
});
replicator.Start();
}
catch (Exception e)
{
_log.Error(e);
}
}
private Authenticator GetDefaultAuthenticator()
{
return new BasicAuthenticator("BigD","123456");
}
}
}