Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Diagnozowanie typowych problemów podczas opracowywania lub wdrażania projektu Fabric Apps. W tym artykule opisano problemy z logowaniem, usługami lokalnymi, zmianami schematu, hostem statycznym i interfejsem wiersza polecenia.
Problemy z wdrażaniem
Wdrożenie kończy się niepowodzeniem z powodu błędu 401 lub 403
Objawem: Uruchomienie npx rayfin up zwraca błąd uwierzytelniania.
Przyczyna: Twoja sesja uwierzytelniania wygasła lub nie zalogowano się.
Rozwiązanie:
Ponowne uwierzytelnianie i ponów próbę wdrożenia:
npx rayfin login
npx rayfin up
Zastosowanie bazy danych zgłasza destrukcyjne zmiany
Objawem: Uruchamianie npx rayfin up db apply bloków z ostrzeżeniem o utracie danych.
Spowodować: Interfejs wiersza polecenia wykrył zmiany schematu, które mogą usuwać dane (upuszczając kolumny, zmieniając nazwy tabel).
Rozwiązanie:
Uważnie przejrzyj wymienione operacje. Jeśli zaakceptujesz utratę danych, użyj polecenia --force:
npx rayfin up db apply --force
Caution
Użycie --force może spowodować trwałą utratę danych. Przed kontynuowaniem sprawdź operacje.
Wdrożenie statyczne przekracza limit rozmiaru
Objawem: Wdrażanie zawartości statycznej kończy się niepowodzeniem z powodu błędu limitu rozmiaru.
Przyczyna: Skompresowane archiwum przekracza 100 MB.
Rozwiązanie:
Zmniejsz rozmiar danych wyjściowych kompilacji, wykonując następujące zadania:
- Wykluczanie map źródłowych z kompilacji produkcyjnych
- Optymalizowanie lub usuwanie dużych obrazów i wideo
- Przenoszenie plików binarnych do pamięci masowej zamiast dołączania ich do pakietu
- Weryfikowanie konfiguracji pakietu wyklucza artefakty programistyczne
Problemy z uwierzytelnianiem
Sesja nie utrzymuje się po zalogowaniu
Objawem: Użytkownicy są wylogowani natychmiast po uwierzytelnieniu.
Przyczyna: Klient nie jest skonfigurowany z poprawnym bazowym adresem URL ani kluczem publicznym.
Rozwiązanie:
Sprawdź, czy konfiguracja RayfinClient odpowiada Twojemu backendowi:
const client = new RayfinClient({
baseUrl: import.meta.env.VITE_RAYFIN_API_URL ?? 'http://localhost:5168',
publishableKey: import.meta.env.VITE_RAYFIN_PUBLISHABLE_KEY,
});
Zablokowano wyskakujące okno logowania SSO w usłudze Fabric
Symptom: Przeglądarka blokuje okno portalu Fabric podczas logowania.
Przyczyna:ensureSignedInWithFabric() nie zostało wywołane z procedury obsługi gestu użytkownika.
Rozwiązanie:
Wywołaj funkcję z synchronicznej procedury obsługi zdarzeń:
async function handleClick() {
await ensureSignedInWithFabric(client.auth, options);
}
// Attach to button click
<button onClick={handleClick}>Sign in</button>
Problemy z modelem danych
Relacje nie pojawiają się w API
Objawem: Pola powiązanej jednostki nie są dostępne podczas wykonywania zapytań.
Przyczyna: Brakuje dekoratora nawigacji lub schemat nie został zastosowany.
Rozwiązanie:
Sprawdź, czy dekoratory relacji są obecne:
@one(() => Notebook) notebook?: Notebook;Ponownie zastosuj schemat.
Zasady autoryzacji nie działają
Objawem: Użytkownicy mogą uzyskiwać dostęp do rekordów, których nie powinni widzieć.
Przyczyna: Wyrażenie zasad jest nieprawidłowe lub nazwy oświadczeń nie są zgodne.
Rozwiązanie:
Sprawdź, czy zasady używają poprawnych nazw oświadczeń (
sub,email,role):policy: (claims, item) => claims.sub.eq(item.user_id)Zapisz w logach zdekodowany token JWT, aby sprawdzić, czy wartości deklaracji odpowiadają wartościom w kodzie.
Nieaktualne odpowiedzi API
Objawem: Fronton zwraca nieaktualne kształty danych po zmianie schematu.
Przyczyna: Wygenerowana konfiguracja jest przechowywana w pamięci podręcznej.
Rozwiązanie:
Zatrzymaj backend.
Usuń katalog
.temp/wrayfin/:rm -rf rayfin/.temp/Uruchom ponownie usługi i ponownie zastosuj schemat.
Problemy z interfejsem wiersza polecenia
Nie znaleziono polecenia
Objaw: Po uruchomieniu npx rayfin wyświetla się komunikat „nie znaleziono polecenia”.
Przyczyna: Narzędzie CLI nie jest zainstalowane lub npm nie znajduje się w zmiennej PATH.
Rozwiązanie:
Sprawdź, czy Node.js i narzędzie npm są zainstalowane:
node --version npm --versionZainstaluj ponownie zależności:
npm install
Niezgodność wersji CLI
Objaw: Polecenia CLI zwracają nieoczekiwane błędy po aktualizacji.
Przyczyna: Buforowana wersja CLI jest nieaktualna.
Rozwiązanie:
Zaktualizuj i zainstaluj ponownie:
npm update --save
npm install
npx rayfin --version
Niezgodność między globalną a lokalną wersją CLI
Objaw: Polecenia CLI kończą się nieoczekiwanymi błędami we wszystkich projektach.
Przyczyna: Globalna i lokalna instalacja CLI oraz niezgodność ich wersji.
Rozwiązanie: Zweryfikuj wersję lokalną npm list @microsoft/rayfin-cli. To pokazuje wersję w katalogu node_modules bieżącego projektu. Sprawdź wersję npm list -g @microsoft/rayfin-cliglobalną . Spowoduje to wyświetlenie zainstalowanej wersji dla całego systemu. Użyj npm uninstall -g z pakietem CLI Rayfin, aby usunąć globalną wersję i korzystać z wersji lokalnych.
Problemy z kompilacją i pakowaniem
Polecenie kompilacji kończy się niepowodzeniem
Objawem: Wdrażanie hostingu statycznego kończy się niepowodzeniem, ponieważ polecenie kompilacji nie wygenerowało żadnych danych wyjściowych.
Spowodować: Błędy kompilacji lub nieprawidłowo skonfigurowane polecenie kompilacji.
Rozwiązanie:
Uruchom polecenie kompilacji ręcznie:
npm run buildNapraw wszelkie zgłoszone błędy.
Sprawdź, czy folder wyjściowy zawiera pliki.
Pusty folder statyczny
Objawem: Wdrażanie statyczne kończy się niepowodzeniem z powodu błędu "pusty folder".
Spowodować: Skonfigurowana folder ścieżka jest niepoprawna.
Rozwiązanie:
Sprawdź, czy ścieżka folder w rayfin.yml odpowiada danym wyjściowym kompilacji:
services:
staticHosting:
folder: dist # Verify this matches your build output
buildCommand: npm run build
Problemy z bazą danych
Odmowa połączenia
Objaw: Operacje na danych nie powiodą się z powodu błędów połączenia.
Przyczyna: Kontener bazy danych nie jest uruchomiony lub kontrole kondycji zakończyły się niepowodzeniem.
Rozwiązanie:
Przejrzyj dzienniki kontenerów:
docker compose logs -fUruchom ponownie usługi.
Utrata danych po ponownym uruchomieniu
Objawem: Dane znikają po zatrzymaniu i uruchomieniu usług.
Przyczyna: Woluminy zostały usunięte przy użyciu polecenia --purge.
Rozwiązanie:
Użyj --down zamiast --purge , aby zachować dane.
Znane ograniczenia
Aby zapoznać się z bieżącymi ograniczeniami i zalecanymi obejściami, zobacz:
-
count()nie jest dostępne w kliencie Fluent GraphQL — użyjresults.length. - Relacje wiele-do-wielu nie są obsługiwane — użyj jawnej jednostki sprzężenia.
- Obiekty sesji są nieprzejrzyste — sprawdź właściwości
isAuthenticatedlubuser. - Po włączeniu lub wyłączeniu uwierzytelniania w programie
rayfin.ymluruchom ponownie zaplecze.
Uzyskaj pomoc
Jeśli problem nadal występuje:
- Zapoznaj się z dokumentacją Fabric Apps.
- Sprawdź repozytorium GitHub pod kątem znanych problemów.
- Prześlij zgłoszenie błędu wraz ze szczegółowymi logami i krokami odtworzenia problemu.