Не могу получить доступ к Redis с aspire.net9C#

Место общения программистов C#
Ответить
Anonymous
 Не могу получить доступ к Redis с aspire.net9

Сообщение Anonymous »

Я использую Parallels на своем Mac для запуска виртуальной машины Windows 11. Docker Desktop работает на Mac. Я создал приложение Aspire.NET 9, использующее Redis. Приложение разработано с использованием VS Code для Mac и Visual Studio 2022 для Windows. Версия для Mac работает нормально, но версия для Windows не может подключиться к Redis.
Код хост-приложения C#:

Код: Выделить всё

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache", 6379);

var apiService = builder.AddProject
("apiservice");

builder.AddProject("webfrontend")
.WithExternalHttpEndpoints()
.WithReference(cache)
.WithReference(apiService);

builder.Build().Run();
Как изменить конечную точку Redis с localhost на IP-адрес Mac? В настоящее время конечной точкой является localhost, и мне трудно найти решение.
Я использую общую сеть и по предложению Майка изменил файл appsettings на использование вместо этого «Служб». "Строки подключения"

Код: Выделить всё

"Services": {
"RedisAspire": {
"tcp": [ "redismac:50693" ]
}
}
по-прежнему появляется ошибка

сбой: Microsoft.Extensions.Hosting.Internal.Host[11]
Не удалось запустить хостинг
Aspire.Hosting.DistributedApplicationException: «Докер» среды выполнения контейнера найден, но выглядит неработоспособным. Ошибка
проверки времени выполнения контейнера: ошибка во время подключения: Get
"http://redismac:2376/v1.47/containers/json?limit=1": наберите tcp
10.0 .0.204:2376: Connectex: Не удалось установить соединение, поскольку целевой компьютер активно отказался от него.

Похоже, что Настройки «Службы» игнорируются.
Следующее, что я попробовал, — это предоставить Docker API через TCP/IP с помощью команды socat с Mac.

Код: Выделить всё



socat TCP-LISTEN:2376,reuseaddr,fork UNIX-CONNECT:/var/run/docker.sock

приложение теперь появляется, и Aspire показывает все приложения (контейнер, API, веб) с «зеленым» состоянием, но конечная точка для «RedisAspire» отображается как «tcp: //localhost:53059», и ошибка, возникающая из веб-приложения:

UnableToConnect (None, 0-read, Last-recv: 0) на
localhost:54272/Interactive, Flushed/ReadAsync, последнее: ECHO, происхождение:
ResetNonConnected, выдающееся: 12, последнее чтение: 5 секунд назад, последняя запись

спасибо

Подробнее здесь: https://stackoverflow.com/questions/792 ... spire-net9
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»