Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diagnostizieren Sie häufige Probleme, wenn Sie ein Fabric Apps-Projekt entwickeln oder bereitstellen. In diesem Artikel werden Probleme mit der Anmeldung, lokalen Diensten, Schemaänderungen, statischem Hosting und der CLI behandelt.
Bereitstellungsprobleme
Die Bereitstellung schlägt mit dem Fehler 401 oder 403 fehl
Symptom: Beim Ausführen wird npx rayfin up ein Authentifizierungsfehler zurückgegeben.
Ursache: Ihre Authentifizierungssitzung ist abgelaufen oder Sie sind nicht angemeldet.
Solution:
Erneutes Authentifizieren und Wiederholen der Bereitstellung:
npx rayfin login
npx rayfin up
Datenbank-Apply-Berichte melden destruktive Änderungen
Symptom: Die Ausführung von npx rayfin up db apply wird mit einer Warnung vor Datenverlust blockiert.
Ursache: Die CLI hat Schemaänderungen erkannt, die Daten löschen können (Spalten ablegen, Tabellen umbenennen).
Solution:
Überprüfen Sie die aufgeführten Vorgänge sorgfältig. Wenn Sie den Datenverlust in Kauf nehmen, verwenden Sie --force:
npx rayfin up db apply --force
Vorsicht
Die Verwendung --force kann zu einem dauerhaften Datenverlust führen. Überprüfen Sie die Vorgänge, bevor Sie fortfahren.
Statisches Deployment überschreitet das Größenlimit.
Symptom: Die Bereitstellung statischer Inhalte schlägt mit einem Größengrenzwertfehler fehl.
Ursache: Das komprimierte Archiv überschreitet 100 MB.
Solution:
Reduzieren Sie die Größe der Build-Ausgabe um:
- Source-Maps aus Produktions-Builds ausschließen
- Optimieren oder Entfernen großer Bilder und Videos
- Verschieben von Binärdateien in den Speicher, anstatt sie zu bündeln
- Überprüfen, ob die Bundler-Konfiguration Entwicklungsartefakte ausschließt
Authentifizierungsprobleme
Sitzung nach der Anmeldung nicht beibehalten
Symptom: Benutzer werden unmittelbar nach der Authentifizierung abgemeldet.
Ursache: Der Client ist nicht mit der richtigen Basis-URL oder dem Veröffentlichungsschlüssel konfiguriert.
Solution:
Überprüfen Sie, ob die RayfinClient Konfiguration Ihrem Back-End entspricht:
const client = new RayfinClient({
baseUrl: import.meta.env.VITE_RAYFIN_API_URL ?? 'http://localhost:5168',
publishableKey: import.meta.env.VITE_RAYFIN_PUBLISHABLE_KEY,
});
Fabric SSO-Popup blockiert
Symptom: Browser blockiert das Fabric Portalfenster während der Anmeldung.
Ursache:ensureSignedInWithFabric() wurde nicht von einem Benutzergestenhandler aufgerufen.
Solution:
Aufrufen der Funktion aus einem synchronen Ereignishandler:
async function handleClick() {
await ensureSignedInWithFabric(client.auth, options);
}
// Attach to button click
<button onClick={handleClick}>Sign in</button>
Datenmodellprobleme
Beziehungen, die nicht in der API angezeigt werden
Symptom: Verwandte Entitätsfelder sind beim Abfragen nicht verfügbar.
Ursache: Der Navigationsdekoror fehlt, oder das Schema wurde nicht angewendet.
Solution:
Überprüfen Sie, ob die Beziehungsdekoratoren vorhanden sind:
@one(() => Notebook) notebook?: Notebook;Erneutes Anwenden des Schemas.
Autorisierungsrichtlinie funktioniert nicht
Symptom: Benutzer können auf Datensätze zugreifen, die sie nicht sehen sollten.
Ursache: Der Richtlinienausdruck ist falsch, oder die Anspruchsnamen stimmen nicht überein.
Solution:
Überprüfen Sie, ob die Richtlinie die richtigen Anspruchsnamen verwendet (
sub,email,role):policy: (claims, item) => claims.sub.eq(item.user_id)Protokollieren Sie die dekodierte JWT, um zu überprüfen, ob die Claim-Werte mit Ihrem Code übereinstimmen.
Veraltete API-Antworten
Symptom: Frontend gibt veraltete Daten-Shapes nach Schemaänderungen zurück.
Ursache: Die generierte Konfiguration wird zwischengespeichert.
Solution:
Stoppen Sie das Backend.
Löschen Sie das
.temp/Verzeichnis inrayfin/:rm -rf rayfin/.temp/Starten Sie die Dienste neu und wenden Sie das Schema erneut an.
CLI-Probleme
Befehl nicht gefunden
Symptom: Wird ausgeführt npx rayfin , wird "Befehl nicht gefunden" zurückgegeben.
Ursache: Die CLI ist nicht installiert, oder npm befindet sich nicht in Ihrem PATH.
Solution:
Überprüfen Sie, Node.js und npm installiert sind:
node --version npm --versionInstallieren Sie Abhängigkeiten neu:
npm install
CLI-Versionskonflikt
Symptom: CLI-Befehle schlagen nach dem Aktualisieren mit unerwarteten Fehlern fehl.
Ursache: Die zwischengespeicherte CLI-Version ist veraltet.
Solution:
Aktualisieren und erneutes Installieren:
npm update --save
npm install
npx rayfin --version
Abweichung zwischen globaler und lokaler CLI-Version
Symptom: CLI-Befehle schlagen bei unerwarteten Fehlern in Projekten fehl.
Ursache: Globale und lokale Installation der CLI-Versionen und stimmen nicht überein.
Lösung: Überprüfen der lokalen Version npm list @microsoft/rayfin-cli. Dies zeigt die Version im node_modules Ihres aktuellen Projekts an. Überprüfen Sie die globale Version npm list -g @microsoft/rayfin-cli. Dies zeigt die systemweit installierte Version an. Verwenden Sie npm uninstall -g das Rayfin CLI-Paket, um die globale Version zu entfernen und Ihre lokalen Versionen zu verwenden.
Build- und Paketierungsprobleme
Buildbefehl schlägt fehl
Symptom: Fehler bei der statischen Hostingbereitstellung, da der Buildbefehl keine Ausgabe erzeugt hat.
Ursache: Buildfehler oder falsch konfigurierter Buildbefehl.
Solution:
Führen Sie den Buildbefehl manuell aus:
npm run buildBeheben Sie alle gemeldeten Fehler.
Überprüfen Sie, ob der Ausgabeordner Dateien enthält.
Leerer statischer Ordner
Symptom: Die statische Bereitstellung schlägt mit dem Fehler "Leerer Ordner" fehl.
Ursache: Der konfigurierte folder Pfad ist falsch.
Solution:
Überprüfen Sie, ob der Pfad folder in rayfin.yml mit Ihrer Build-Ausgabe übereinstimmt:
services:
staticHosting:
folder: dist # Verify this matches your build output
buildCommand: npm run build
Datenbankprobleme
Verbindung verweigert
Symptom: Datenvorgänge schlagen mit Verbindungsfehlern fehl.
Ursache: Der Datenbankcontainer läuft nicht, oder die Zustandsprüfungen sind fehlgeschlagen.
Solution:
Überprüfen von Containerprotokollen:
docker compose logs -fStarten Sie Dienste neu.
Datenverlust nach dem Neustart
Symptom: Daten verschwinden nach dem Beenden und Neustarten von Diensten.
Ursache: Volumes wurden mit --purge gelöscht.
Solution:
Verwenden Sie --down anstelle von --purge, um Daten zu erhalten.
Bekannte Einschränkungen
Aktuelle Einschränkungen und empfohlene Problemumgehungen finden Sie unter:
-
count()ist im Fluent GraphQL-Client nicht verfügbar – verwenden Sieresults.length. - Viele-zu-viele-Beziehungen werden nicht unterstützt – verwenden Sie eine explizite Join-Entität.
- Sitzungsobjekte sind opak – prüfen Sie die Eigenschaften
isAuthenticatedoderuser. - Nachdem Sie die Authentifizierung in
rayfin.ymlaktiviert oder deaktiviert haben, starten Sie das Backend neu.
Hilfe erhalten
Falls das Problem weiterhin besteht:
- Lesen Sie die Dokumentation Fabric Apps.
- Überprüfen Sie das Repository GitHub auf bekannte Probleme.
- Erstellen Sie einen Fehlerbericht mit detaillierten Protokollen und Reproduktionsschritten.