#.net-core #redis #ibm-cloud #serverless #openwhisk
Вопрос:
Я пытаюсь подключиться к базам данных IBM для экземпляра redis из функций ibmcloud в течение нескольких дней, но мне не повезло. Я попытался использовать поддерживаемую ibmcloud версию. netcore 2.2 и docker image core 3.1.
Я могу подключиться к redis без каких-либо ошибок из локального консольного приложения, используя приведенный ниже код.
Мне нужна твоя помощь. Спасибо.
public IbmRedisClient(JObject args)
{
X509Store store = new X509Store(StoreName.Root);
var base64 = (string)args.GetValue("redis_connection_certbase64");
string connURL = (string)args.GetValue("redis_connection_string");
connURL = connURL.Replace("$PASSWORD", PASSWORD);
Console.WriteLine("base: " base64);
X509Certificate2 ca = new X509Certificate2(Convert.FromBase64String(base64));
var EndPointCollection = new EndPointCollection();
var options = new ConfigurationOptions
{
AbortOnConnectFail = false,
Ssl = true,
ConnectRetry = 3,
ConnectTimeout = 5000,
SyncTimeout = 5000,
DefaultDatabase = 0,
Password = "testadminpassword"
};
options.EndPoints.Add(host, 32326);
options.EndPoints.Add(host, 0);
options.CertificateSelection = delegate
{
return ca;
};
try
{
ConnectionMultiplexer muxer = ConnectionMultiplexer.Connect(options);
conn = muxer.GetDatabase();
}
catch (Exception ex)
{
Console.WriteLine("Root certificate import failed: " ex.Message " " ex.ToString());
}
finally
{
store.Close();
}
}
Не удалось загрузить файл или сборку «System.IO.Pipelines, Версия=5.0.0.0, Культура=нейтральная, PublicKeyToken=cc7b13ffcd2ddd51». Не удалось найти или загрузить определенный файл. (0x80131621) Исключение System.IO.FileLoadException: Не удалось загрузить файл или сборку «System.IO.Конвейеры, Версия=5.0.0.0, Культура=нейтральная, PublicKeyToken=cc7b13ffcd2ddd51″. Не удалось найти или загрузить определенный файл. (0x80131621)»,
«2021-03-28T07:41:12.715551 Z stdout: Имя файла: ‘System.IO.Pipelines, Версия=5.0.0.0, Культура=нейтральная, PublicKeyToken=cc7b13ffcd2ddd51′»,
«2021-03-28T07:41:12.715557 з поток stdout: —> система.ИО.Fileloadexception: не удалось загрузить файл или сборку ‘System.ИО.Трубопроводы, версия=5.0.0.0, культура=нейтральных, PublicKeyToken=cc7b13ffcd2ddd51’.»,
«2021-03-28T07:41:12.715562 з стандартный вывод: в системе.Время выполнения.Погрузчик.AssemblyLoadContext.LoadFromPath(IntPtr ptrNativeAssemblyLoadContext, Строка ilPath, Строка niPath, Повторная сборка ObjectHandleOnStack)»,
«2021-03-28T07:41:12.715567 Z stdout: в System.Runtime.Погрузчик.AssemblyLoadContext.LoadFromAssemblyPath(строковый путь сборки)»,
«2021-03-28T07:41:12.715572 Z выход из строя: в системе.Отражение.Собрание.Загрузка из(файл сборки строки)»,
«2021-03-28T07:41:12.715576 Z выход из системы: в системе.Отражение.Собрание.LoadFromResolveHandler(отправитель объекта, аргументы ResolveEventArgs)»,
«2021-03-28T07:41:12.715581 Z stdout: в System.Runtime.Погрузчик.AssemblyLoadContext.InvokeResolveEvent(обработчик событий ResolveEventHandler, сборка сборки во время выполнения, строковое имя)»,
«2021-03-28T07:41:12.715586 Z stdout: в System.Runtime.Погрузчик.AssemblyLoadContext.OnAssemblyResolve(сборка сборки во время выполнения, строка assemblyFullName)»,
«2021-03-28T07:41:12.715590 Z выход из строя: на StackExchange.Редис.Мультиплексор соединений.Подключение(конфигурация параметров конфигурации, журнал текстового редактора)»,
Ответ №1:
Пожалуйста, попробуйте добавить <_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>
в свой файл проекта, еще не пробовал, но воспользуюсь решением, опубликованным здесь для аналогичной проблемы.
Комментарии:
1. Я уже пробовал это, но это не работает с облачными функциями ibm
Ответ №2:
Я решил проблему, понизив рейтинг StackExchange.Перейдите на версию, для которой не требуется зависимость от конвейеров.
Комментарии:
1. Если этот обходной путь сработал, то есть вероятность, что вы столкнулись с ошибкой, которую мы заметили во время выполнения dotnet, когда переходные зависимости не работали. Можете ли вы взглянуть и посмотреть, соответствует ли это тому, что вы испытали? github.com/apache/openwhisk-runtime-dotnet/issues/39