Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Toto není nejnovější verze tohoto článku. Aktuální verzi najdete ve verzi .NET 10 tohoto článku.
Výstraha
Tato verze ASP.NET Core již není podporována. Pro více informací se podívejte na Zásady podpory .NET a .NET Core. Aktuální vydání tohoto článku najdete v verzi .NET 9.
Tento článek vysvětluje, jak se vyhnout problémům s ukládáním do mezipaměti HTTP při upgradu Blazor aplikací.
Pokud jsou Blazor aplikace nesprávně upgradované nebo nakonfigurované, můžou vést k nespojitým upgradům stávajících uživatelů. Tento článek popisuje některé běžné problémy s ukládáním do mezipaměti HTTP, ke kterým může dojít při upgradu Blazor aplikací napříč hlavními verzemi. Poskytuje také některé doporučené akce, které zajistí hladký přechod pro vaše uživatele.
I když budoucí Blazor verze můžou poskytovat lepší řešení problémů s ukládáním do mezipaměti HTTP, je nakonec až na aplikaci, aby správně nakonfigurovala ukládání do mezipaměti. Správná konfigurace ukládání do mezipaměti zajišťuje, aby uživatelé aplikace měli vždy nejvíce up-to-date verzi aplikace, což zlepšuje jejich prostředí a snižuje pravděpodobnost výskytu chyb.
Mezi běžné problémy, které negativně ovlivňují prostředí upgradu uživatelů, patří:
- Nesprávné zpracování aktualizací projektů a balíčků: K tomu dochází v případě, že neaktualizujete všechny nasazené projekty aplikace tak, aby používaly stejnou hlavní verzi architektury, nebo pokud používáte balíčky z předchozí verze, pokud je v rámci hlavního upgradu k dispozici novější verze.
- Nesprávná konfigurace hlaviček ukládání do mezipaměti: Hlavičky mezipaměti HTTP určují, jak, kde a jak dlouho se odpovědi aplikace ukládají do mezipaměti. Pokud nejsou hlavičky správně nakonfigurované, můžou uživatelé obdržet zastaralé nebo neodpovídající soubory. To zahrnuje ukládání assetů balíčků do mezipaměti, kde hlavičky ukládání do mezipaměti serveru musí být správně nastavené, aby se zabránilo problémům s ukládáním do mezipaměti na straně klienta.
- Nesprávná konfigurace jiných vrstev: Sítě pro doručování obsahu (CDN) a další vrstvy nasazené aplikace můžou způsobit problémy, pokud jsou nesprávně nakonfigurované. Sítě CDN jsou například navrženy pro ukládání do mezipaměti a doručování obsahu za účelem zlepšení výkonu a snížení latence. Pokud CDN nesprávně obsluhuje verze prostředků uložených v mezipaměti, to může vést k zastaralému doručování obsahu uživateli.
Detekce a diagnostika problémů s upgradem
Problémy s upgradem se obvykle zobrazují jako selhání spuštění aplikace v prohlížeči. Obvykle upozornění označuje přítomnost zastaralého prostředku nebo prostředku, který chybí nebo je nekonzistentní s aplikací.
- Nejprve zkontrolujte, jestli se aplikace úspěšně načte v čisté instanci prohlížeče. K načtení aplikace, jako je režim InPrivate Microsoft Edge nebo Anonymní režim Google Chrome, použijte režim privátního prohlížeče. Pokud se aplikaci nepodaří načíst, pravděpodobně to znamená, že jeden nebo více balíčků nebo architektura nebyla správně aktualizována.
- Pokud se aplikace správně načte v čisté instanci prohlížeče, je pravděpodobné, že se aplikace obsluhuje ze zastaralé mezipaměti. Ve většině případů se pomocí tvrdého obnovení prohlížeče s Ctrl+F5 vyprázdní mezipaměť, což umožní aplikaci načíst a spustit s nejnovějšími prostředky.
- Pokud aplikace dál selže, je pravděpodobné, že aplikace obsluhuje zastaralou mezipaměť CDN. Zkuste mezipaměť DNS vyprázdnit pomocí jakéhokoli mechanismu, který poskytovatel CDN nabízí.
Doporučené akce před upgradem
Předchozí proces obsluhy aplikace může ztížit proces aktualizace. Například vyhýbání se nebo nesprávné použití cache hlaviček v minulosti může vést k současným problémům s cache pro uživatele. Akce můžete provést v následujících částech, abyste tento problém zmírňovali a vylepšili proces upgradu pro uživatele.
Sladění balíčků architektury s verzí architektury
Ujistěte se, že balíčky architektury jsou v souladu s verzí architektury. Použití balíčků z předchozí verze, pokud je k dispozici novější verze, může dojít k problémům s kompatibilitou. Je také důležité zajistit, aby všechny nasazené projekty aplikace používaly stejnou hlavní verzi architektury. Tato konzistence pomáhá vyhnout se neočekávanému chování a chybám.
Ověřte přítomnost správných hlaviček pro ukládání do mezipaměti
Správná hlavička ukládání do mezipaměti by měla být k dispozici u odpovědí na požadavky na prostředky. To zahrnuje ETag, Cache-Control a další hlavičky ukládání do mezipaměti. Konfigurace těchto hlaviček závisí na hostitelské službě nebo platformě hostitelského serveru. Jsou zvláště důležité pro prostředky, jako Blazor skript a cokoli, co skript stáhne.
Nesprávné hlavičky ukládání do mezipaměti HTTP můžou mít vliv také na pracovní procesy služeb. Pracovníci služeb spoléhají na hlavičky ukládání do mezipaměti pro efektivní správu prostředků uložených v mezipaměti. Nesprávné nebo chybějící hlavičky proto mohou narušit funkci service workeru.
Slouží Clear-Site-Data k odstranění stavu v prohlížeči.
Zvažte použití Clear-Site-Data záhlaví k odstranění stavu v prohlížeči.
Zdroj problémů se stavem mezipaměti je obvykle omezen na mezipaměť prohlížeče HTTP, takže použití cache direktivy by mělo být dostatečné. Tato akce může pomoci zajistit, že prohlížeč stáhne nejnovější prostředky ze serveru, a ne načítat zastaralý obsah z mezipaměti.
Volitelně můžete zahrnout direktivu storage pro vymazání místních mezipamětí úložiště ve stejnou dobu, kdy vymažete mezipaměť prohlížeče HTTP. Aplikace, které používají klientské úložiště, ale můžou při použití direktivy dojít ke storage ztrátě důležitých informací.
Připojte řetězec dotazu ke značce Blazor skriptu
Pokud žádná z předchozích doporučených akcí není účinná nebo ji nelze použít pro vaše nasazení či aplikaci, zvažte dočasné připojení řetězce dotazu ke zdroji Blazor značky skriptu <script>. Tato akce by měla být dostatečná ve většině situací, aby prohlížeč vynechal místní mezipaměť HTTP a stáhl novou verzi aplikace. Nemusíte číst ani používat řetězec dotazu v aplikaci.
V následujícím příkladu se dotazovací řetězec temporaryQueryString=1 dočasně aplikuje na relativní externí URI značky <script>.
<script src="_framework/blazor.webassembly.js?temporaryQueryString=1"></script>
Jakmile všichni uživatelé aplikace ji znovu načtou, řetězec dotazu lze odstranit.
Případně můžete použít trvalý řetězec dotazu s příslušnou správou verzí. Následující příklad předpokládá, že verze aplikace odpovídá verzi .NET (8 pro .NET 8):
<script src="_framework/blazor.webassembly.js?version=8"></script>
Umístění značky skriptu najdete v tématu Blazor.<script>Blazor