Brak łańcucha połączenia
W .NET.NET Aspirekod identyfikuje zasoby przy użyciu dowolnego ciągu, takiego jak "baza danych". Kod korzystający z zasobu w innym miejscu musi używać tego samego ciągu lub nie będzie można poprawnie skonfigurować relacji.
Objawy
Gdy aplikacja uzyskuje dostęp do usługi wymagającej jednej z integracji w aplikacji, może zakończyć się niepowodzeniem z wyjątkiem podobnym do następującego:
InvalidOperationException: Brakuje ConnectionString.
Możliwe rozwiązania
Sprawdź, czy nazwa zasobu, na przykład zasobu bazy danych, jest taka sama w hostie AppHost i usłudze, która kończy się niepowodzeniem.
Jeśli na przykład host AppHost definiuje zasób PostgreSQL o nazwie db1
w następujący sposób:
var db1 = builder.AddPostgres("pg1").AddDatabase("db1");
Następnie usługa musi rozpoznać zasób o tej samej nazwie db1
.
var builder = WebApplication.CreateBuilder(args);
builder.AddNpgsqlDbContext<MyDb1Context>("db1");
Każda inna wartość niż podana w obiekcie AppHost spowoduje wyświetlenie komunikatu wyjątku opisanego powyżej.