Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
Dit is niet de nieuwste versie van dit artikel. Zie de .NET 9-versie van dit artikel voor de huidige release.
Waarschuwing
Deze versie van ASP.NET Core wordt niet meer ondersteund. Zie het .NET- en .NET Core-ondersteuningsbeleid voor meer informatie. Zie de .NET 9-versie van dit artikel voor de huidige release.
Belangrijk
Deze informatie heeft betrekking op een pre-releaseproduct dat aanzienlijk kan worden gewijzigd voordat het commercieel wordt uitgebracht. Microsoft geeft geen garanties, uitdrukkelijk of impliciet, met betrekking tot de informatie die hier wordt verstrekt.
Zie de .NET 9-versie van dit artikel voor de huidige release.
In dit artikel wordt uitgelegd hoe u problemen met HTTP-caching kunt voorkomen bij het upgraden van Blazor apps.
Wanneer Blazor apps onjuist zijn bijgewerkt of geconfigureerd, kan dit leiden tot niet-naadloze upgrades voor bestaande gebruikers. In dit artikel worden enkele veelvoorkomende problemen met HTTP-caching besproken die kunnen optreden bij het upgraden van Blazor apps in primaire versies. Het biedt ook enkele aanbevolen acties om een soepele overgang voor uw gebruikers te garanderen.
Hoewel toekomstige Blazor releases betere oplossingen kunnen bieden voor het oplossen van problemen met HTTP-caching, is het uiteindelijk aan de app om caching correct te configureren. De juiste cacheconfiguratie zorgt ervoor dat de gebruikers van de app altijd de meest up-to-datumversie van de app hebben, waardoor hun ervaring wordt verbeterd en de kans op fouten wordt verminderd.
Veelvoorkomende problemen die een negatieve invloed hebben op de upgrade-ervaring van de gebruiker zijn onder andere:
- Onjuiste verwerking van project- en pakketupdates: dit gebeurt als u niet alle geïmplementeerde projecten van de app bijwerkt om dezelfde primaire frameworkversie te gebruiken of als u pakketten van een vorige versie gebruikt wanneer een nieuwere versie beschikbaar is als onderdeel van de grote upgrade.
 - Onjuiste configuratie van cachingheaders: HTTP-headers bepalen hoe, waar en voor hoelang de antwoorden van de app in de cache worden opgeslagen. Als headers niet correct zijn geconfigureerd, ontvangen gebruikers mogelijk verouderde of niet-overeenkomende bestanden. Dit omvat Blazor caching van bundelassets, waarbij headers voor servercaching correct moeten worden ingesteld om cachingproblemen op de client te voorkomen.
 - Onjuiste configuratie van andere lagen: CDN's (Content Delivery Networks) en andere lagen van de geïmplementeerde app kunnen problemen veroorzaken als ze onjuist zijn geconfigureerd. CDN's zijn bijvoorbeeld ontworpen om inhoud op te cachen en te leveren om de prestaties te verbeteren en latentie te verminderen. Als een CDN niet goed in de cache opgeslagen versies van assets levert, kan dit leiden tot verouderde levering van inhoud aan de gebruiker.
 
Upgradeproblemen detecteren en diagnosticeren
Upgradeproblemen worden meestal weergegeven als een fout bij het starten van de app in de browser. Normaal gesproken geeft een waarschuwing de aanwezigheid aan van een verouderde asset of een asset die ontbreekt of niet overeenkomt met de app.
- Controleer eerst of de app succesvol wordt geladen in een schone browserinstantie. Gebruik een privébrowsermodus om de app te laden, zoals de InPrivate-modus van Microsoft Edge of de Incognitomodus van Google Chrome. Als de app niet kan worden geladen, betekent dit waarschijnlijk dat een of meer pakketten of het framework niet correct zijn bijgewerkt.
 - Als de app correct wordt geladen in een schone browserinstantie, is het waarschijnlijk dat de app wordt geleverd vanuit een verouderde cache. In de meeste gevallen wordt de cache door een harde browser vernieuwd met Ctrl+F5 , waardoor de app kan worden geladen en uitgevoerd met de nieuwste assets.
 - Als de app blijft mislukken, is het waarschijnlijk dat een verouderde CDN-cache de app bedient. Probeer de DNS-cache leeg te maken via welk mechanisme uw CDN-provider ook biedt.
 
Aanbevolen acties vóór een upgrade
Het voorgaande proces voor het leveren van de app kan het updateproces lastiger maken. Het vermijden of onjuist gebruiken van caching headers in het verleden kan leiden tot huidige cachingproblemen voor gebruikers. U kunt de acties in de volgende secties uitvoeren om het probleem te verhelpen en het upgradeproces voor gebruikers te verbeteren.
Frameworkpakketten uitlijnen met de frameworkversie
Zorg ervoor dat frameworkpakketten voldoen aan de frameworkversie. Het gebruik van pakketten van een eerdere versie wanneer er een nieuwere versie beschikbaar is, kan leiden tot compatibiliteitsproblemen. Het is ook belangrijk om ervoor te zorgen dat alle geïmplementeerde projecten van de app dezelfde primaire frameworkversie gebruiken. Deze consistentie helpt onverwacht gedrag en fouten te voorkomen.
De aanwezigheid van juiste headers in de cache controleren
De juiste headers in de cache moeten aanwezig zijn bij antwoorden op resourceaanvragen. Dit omvat ETag, Cache-Controlen andere headers in de cache. De configuratie van deze headers is afhankelijk van de hostingservice of het hostingserverplatform. Ze zijn met name belangrijk voor assets zoals het Blazor script en alles wat het script downloadt.
Onjuiste HTTP-cachingheaders kunnen ook van invloed zijn op servicemedewerkers. Serviceworkers zijn afhankelijk van caching-headers om gecachte bronnen effectief te beheren. Daarom kunnen onjuiste of ontbrekende headers de functionaliteit van de servicemedewerker verstoren.
Gebruik Clear-Site-Data om de status in de browser te verwijderen
Overweeg om de koptekst te gebruiken om de Clear-Site-Data status in de browser te verwijderen.
Meestal is de bron van problemen met de cachestatus beperkt tot de HTTP-browsercache, dus het gebruik van de cache instructie moet voldoende zijn. Deze actie kan helpen ervoor te zorgen dat de browser de meest recente resources van de server ophaalt in plaats van verouderde inhoud uit de cache te leveren.
U kunt eventueel de storage instructie opnemen om lokale opslagcaches te wissen op hetzelfde moment dat u de HTTP-browsercache wist. Apps die gebruikmaken van clientopslag kunnen echter leiden tot verlies van belangrijke informatie als de storage richtlijn wordt gebruikt.
Een querytekenreeks toevoegen aan de Blazor scripttag
Als geen van de eerdere aanbevolen acties effectief is, mogelijk te gebruiken is voor uw implementatie, of toepasselijk is voor uw app, overweeg dan tijdelijk een queryreeks toe te voegen aan de bron van de Blazor tag van het <script> script. Deze actie moet in de meeste gevallen voldoende zijn om de browser te dwingen de lokale HTTP-cache te omzeilen en een nieuwe versie van de app te downloaden. U hoeft de querytekenreeks in de app niet te lezen of te gebruiken.
In het volgende voorbeeld wordt de queryreeks temporaryQueryString=1 tijdelijk toegepast op de relatieve externe bron-URI van de <script> tag:
<script src="_framework/blazor.webassembly.js?temporaryQueryString=1"></script>
Nadat alle gebruikers van de app de app opnieuw hebben geladen, kan de querytekenreeks worden verwijderd.
U kunt ook een blijvende querytekenreeks met relevante versiebeheer appliceren. In het volgende voorbeeld wordt ervan uitgegaan dat de versie van de app overeenkomt met de .NET-releaseversie (8 voor .NET 8):
<script src="_framework/blazor.webassembly.js?version=8"></script>