#.net #iis #couchbase
#.net #iis #couchbase
Вопрос:
У нас есть существующее большое приложение IIS (.NET Framework 4.6.2), которое использует старый couchbase SDK и отлично работало с couchbase server (Community Edition 6.6.0 build 7909). Теперь мы хотим перейти на последнюю версию couchbase dotnet SDK 3.1, после замены соответствующего кода и его локального тестирования. связавшись с локальным сервером couchbase, я протестировал его на сервере контроля качества, настроенном для связи с кластером серверов couchbase (4 узла) в той же среде.
Но приложение не смогло подключиться к серверу couchbase и выдает исключение при инициализации корзины / кластера :
var options = new ClusterOptions
{
UserName = userName,
Password = password,
Buckets = new List<string> { bucketName },
ConnectionString = connectionString,
Logging = loggerFactory
};
var cluster = Cluster.ConnectAsync(options).GetAwaiter().GetResult();
var bucket = cluster.BucketAsync(bucketName).GetAwaiter().GetResult();
Очень общее исключение — «Корзина с именем <<MY_BUCKET_NAME>> не существует». (Корзина существует, и учетные данные пользователя верны.)
Несмотря на то, что когда я пингую (с сервера контроля качества) одно и то же имя хоста (couchbase) в нашей внутренней сети, я получаю ответы. И результаты диагностики sdk-doctor (с тем же именем хоста, корзиной и учетными данными) выполнены успешно.
мы попытались с помощью простого консольного приложения (той же версии .net framework) запустить на том же сервере простую инициализацию (то же имя хоста, корзину и учетные данные) и поиск с того же сервера couchbase, и все сработало нормально.
Мы также попытались добавить отображение узлов в файл hosts.
знаете ли вы какую-либо причину такого поведения? или идея для решения. Спасибо.
Мы также добавили LoggerFactory в ClusterOptions для получения внутренних журналов couchbase :
[2021-02-07 09:10:03 00:00] [Trace] The subject is bootstrapped: True
[2021-02-07 09:10:03 00:00] [Debug] Setting TCP Keep-Alives using Socket.IOControl on <<MY_COUCHBASE_SERVER'S_IP>>:11210 - enable tcp keep-alives True, time 00:01:00, interval 00:00:01
[2021-02-07 09:10:03 00:00] [Debug] Starting connection initialization on server <<MY_COUCHBASE_SERVER'S_IP>>:11210.
[2021-02-07 09:10:03 00:00] [Debug] Executing op Helo on <<MY_COUCHBASE_SERVER'S_IP>>:11210 with key {"i":"598d37c53bdeca6b/0000000000000003","a":"couchbase-net-sdk/3.1.0.0 (clr/.NET Framework 4.7.3740.0) (os/Microsoft Windows 10.0.17763 )"} and opaque 8.
[2021-02-07 09:10:03 00:00] [Debug] Completed executing op <<MY_COUCHBASE_SERVER'S_IP>>:11210 on Helo with key {"i":"598d37c53bdeca6b/0000000000000003","a":"couchbase-net-sdk/3.1.0.0 (clr/.NET Framework 4.7.3740.0) (os/Microsoft Windows 10.0.17763 )"} and opaque 8
[2021-02-07 09:10:03 00:00] [Debug] Executing op GetErrorMap on <<MY_COUCHBASE_SERVER'S_IP>>:11210 with key and opaque 10.
[2021-02-07 09:10:03 00:00] [Debug] Completed executing op <<MY_COUCHBASE_SERVER'S_IP>>:11210 on GetErrorMap with key and opaque 10
[2021-02-07 09:10:03 00:00] [Information] v=aHXI6YkwbZvurZIipatRL2KcKb8=
[2021-02-07 09:10:03 00:00] [Debug] Connection for <<MY_COUCHBASE_SERVER'S_IP>>:11210 has been started.
[2021-02-07 09:10:03 00:00] [Information] Cannot bootstrap bucket qa as Couchbase. at Microsoft.Extensions.Logging.Logger.Log[TState](LogLevel logLevel, EventId eventId, TState state, Exception exception, Func`3 formatter)
at Microsoft.Extensions.Logging.Logger`1.Microsoft.Extensions.Logging.ILogger.Log[TState](LogLevel logLevel, EventId eventId, TState state, Exception exception, Func`3 formatter)
at Microsoft.Extensions.Logging.LoggerExtensions.Log(ILogger logger, LogLevel logLevel, EventId eventId, Exception exception, String message, Object[] args)
at Couchbase.Core.IO.Connections.ConnectionFactory.<CreateAndConnectAsync>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Couchbase.Core.IO.Connections.ConnectionPoolBase.<CreateConnectionAsync>d__19.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Couchbase.Core.IO.Connections.DataFlow.DataFlowConnectionPool.<>c__DisplayClass28_0.<<AddConnectionsAsync>g__StartConnection|0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Couchbase.Core.IO.Connections.DataFlow.DataFlowConnectionPool.<AddConnectionsAsync>d__28.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Couchbase.Core.IO.Connections.DataFlow.DataFlowConnectionPool.<InitializeAsync>d__21.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Couchbase.Core.ClusterNode.<InitializeAsync>d__107.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Couchbase.Core.DI.ClusterNodeFactory.<CreateAndConnectAsync>d__11.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Couchbase.Core.ClusterContext.<CreateAndBootStrapBucketAsync>d__52.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Couchbase.Core.ClusterContext.<GetOrCreateBucketAsync>d__51.MoveNext()
[2021-02-07 09:10:03 00:00] [Debug] Cannot set ServerCertificateCustomValidationCallback, not supported on this platform
после этого та же последовательность, но с надписью «Невозможно загрузить корзину <<MY_BUCKET_NAME>> как Memcached». и другая с надписью «Невозможно загрузить корзину <<MY_BUCKET_NAME>> как эфемерную».