Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Bu, bu makalenin en son sürümü değildir. Geçerli sürüm için bu makalenin .NET 10 sürümüne bakın.
Uyarı
ASP.NET Core'un bu sürümü artık desteklenmiyor. Daha fazla bilgi için bkz . .NET ve .NET Core Destek İlkesi. Geçerli sürüm için bu makalenin .NET 9 sürümüne bakın.
Bu makalede, uygulamaları yükseltirken Blazor HTTP önbelleğe alma sorunlarının nasıl önlenmesi açıklanır.
Yanlış yükseltilen veya yapılandırılan Blazor uygulamalar, mevcut kullanıcılar için aksamalı yükseltmelere neden olabilir. Bu makalede, uygulamaları ana sürümlere yükseltirken Blazor ortaya çıkabilecek bazı yaygın HTTP önbelleğe alma sorunları açıklanır. Ayrıca, kullanıcılarınız için sorunsuz bir geçiş sağlamak için bazı önerilen eylemler sağlar.
Gelecekteki Blazor sürümler HTTP önbelleğe alma sorunlarıyla başa çıkmak için daha iyi çözümler sunsa da, önbelleğe almayı doğru şekilde yapılandırmak en sonunda uygulamaya bırakılabilir. Uygun önbelleğe alma yapılandırması, uygulamanın kullanıcılarının her zaman uygulamanın en up-togüncel sürümüne sahip olmasını sağlayarak deneyimlerini geliştirir ve hatalarla karşılaşma olasılığını azaltır.
Kullanıcı yükseltme deneyimini olumsuz etkileyen yaygın sorunlar şunlardır:
- Proje ve paket güncelleştirmelerinin yanlış işlenmesi: Uygulamanın dağıtılan projelerinin tümünü aynı ana çerçeve sürümünü kullanacak şekilde güncelleştirmezseniz veya ana yükseltmenin bir parçası olarak daha yeni bir sürüm kullanılabilir olduğunda önceki bir sürüme ait paketleri kullanırsanız bu durum oluşur.
- Önbelleğe alma üst bilgilerinin yanlış yapılandırılması: HTTP önbelleğe alma üst bilgileri, uygulamanın yanıtlarının nasıl, nerede ve ne kadar süreyle önbelleğe alınacağı konusunda denetim sağlar. Üst bilgiler doğru yapılandırılmamışsa, kullanıcılar eski veya eşleşmeyen dosyalar alabilir. Bu, Blazor paket varlıkların önbelleğe alınmasını içerir, burada sunucu önbelleğe alma üst bilgilerinin, istemcide önbelleğe alma sorunlarını önlemek amacıyla düzgün şekilde ayarlanması gerekmektedir.
- Diğer katmanların yanlış yapılandırılması: Content Delivery Networks (CDNs) ve dağıtılan uygulamanın diğer katmanları yanlış yapılandırılmışsa sorunlara neden olabilir. Örneğin, CDN'ler performansı geliştirmek ve gecikme süresini azaltmak için içeriği önbelleğe almak ve sunmak üzere tasarlanmıştır. CDN, varlıkların önbelleğe alınmış sürümlerini yanlış bir şekilde kullanıma açıyorsa, kullanıcıya eski içerik teslimine yol açabilir.
Yükseltme sorunlarını algılama ve tanılama
Yükseltme sorunları genellikle uygulamayı tarayıcıda başlatma hatası olarak görünür. Normalde uyarı, eski bir varlığın veya eksik veya uygulamayla tutarsız bir varlığın varlığını gösterir.
- İlk olarak, uygulamanın temiz bir tarayıcı örneğinde başarıyla yüklenip yüklenmediğini denetleyin. Uygulamayı yüklemek için Microsoft Edge InPrivate modu veya Google Chrome Gizli modu gibi özel bir tarayıcı modu kullanın. Uygulamanın yüklenememesi, büyük olasılıkla bir veya daha fazla paketin veya çerçevenin doğru güncelleştirilemediği anlamına gelir.
- Uygulama temiz bir tarayıcı örneğinde doğru şekilde yüklenirse, büyük olasılıkla eski bir önbellekten hizmet alınıyor demektir. Çoğu durumda , Ctrl+F5 ile sabit bir tarayıcı yenilemesi önbelleği temizler ve bu da uygulamanın en son varlıklarla yüklenmesine ve çalıştırılmasına izin verir.
- Uygulama başarısız olursa, eski bir CDN önbelleğinin uygulamaya hizmet verme olasılığı yüksektir. CDN sağlayıcınızın sunduğu mekanizma aracılığıyla DNS önbelleğini temizlemeyi deneyin.
Yükseltmeden önce önerilen eylemler
Önceki uygulama sunma işlemi, güncelleştirme işlemini daha zor hale getirebilir. Örneğin, geçmişte önbellek başlıklarını kullanmaktan kaçınmak veya bunları yanlış kullanmak, kullanıcılar için şu anki önbellek sorunlarına yol açabilir. Sorunu azaltmak ve kullanıcılar için yükseltme işlemini geliştirmek için aşağıdaki bölümlerde yer alan eylemleri gerçekleştirebilirsiniz.
Çerçeve paketlerini çerçeve sürümüyle hizalama
Çerçeve paketlerinin çerçeve sürümüyle uyumlu olduğundan emin olun. Daha yeni bir sürüm kullanılabilir olduğunda önceki sürümden gelen paketlerin kullanılması uyumluluk sorunlarına yol açabilir. Uygulamanın dağıtılan tüm projelerinin aynı ana çerçeve sürümünü kullandığından emin olmak da önemlidir. Bu tutarlılık beklenmeyen davranış ve hataları önlemeye yardımcı olur.
Doğru önbelleğe alma üst bilgilerinin varlığını doğrulayın
Kaynak isteklerine verilen yanıtlarda doğru önbelleğe alma üst bilgileri bulunmalıdır. Bu, ETag, Cache-Control ve diğer önbelleğe alma üst bilgilerini içerir. Bu üst bilgilerin yapılandırması barındırma hizmetine veya barındırma sunucusu platformuna bağlıdır. Bunlar özellikle betik gibi varlıklar ve betiğinBlazor indirdiği her şey için önemlidir.
Yanlış HTTP önbelleğe alma üst bilgileri de hizmet çalışanlarını etkileyebilir. Hizmet çalışanları, önbelleğe alınan kaynakları etkili bir şekilde yönetmek için önbelleğe alma başlıklarını kullanır. Bu nedenle, yanlış veya eksik üst bilgiler hizmet çalışanının işlevselliğini kesintiye uğratabilir.
Tarayıcıda durumu silmek için kullanın Clear-Site-Data
Tarayıcıda durumu kaldırmak için başlığı kullanmayıClear-Site-Data göz önünde bulundurun.
Genellikle önbellek durumu sorunlarının kaynağı HTTP tarayıcı önbelleğiyle sınırlıdır, bu nedenle yönergenin cache kullanımı yeterli olmalıdır. Bu eylem, tarayıcının önbellekten eski içerik sağlamak yerine sunucudan en son kaynakları getirmesini sağlamaya yardımcı olabilir.
İsteğe bağlı olarak, HTTP tarayıcı önbelleğini storage temizlerken yerel depolama önbelleklerini temizlemek için yönergesini de ekleyebilirsiniz. Ancak storage yönergesi kullanılırsa, istemci depolama alanı kullanan uygulamalar önemli bilgi kaybı yaşayabilir.
Betik etiketine Blazor sorgu dizesi ekleme
Önceki önerilen eylemlerden hiçbiri etkili değilse, dağıtımınız için kullanılabilirse veya uygulamanıza uygulanmazsa, betiğin Blazor<script> etiket kaynağına geçici olarak bir sorgu dizesi eklemeyi göz önünde bulundurun. Bu eylem çoğu durumda tarayıcıyı yerel HTTP önbelleğini atlayıp uygulamanın yeni bir sürümünü indirmeye zorlamak için yeterli olmalıdır. Uygulamada sorgu dizesini okumanız veya kullanmanız gerekmez.
Aşağıdaki örnekte, sorgu dizesi temporaryQueryString=1 etiketin <script> göreli dış kaynak URI'sine geçici olarak uygulanır:
<script src="_framework/blazor.webassembly.js?temporaryQueryString=1"></script>
Uygulamanın tüm kullanıcıları uygulamayı yeniden yükledikten sonra sorgu dizesi kaldırılabilir.
Alternatif olarak, ilgili sürüm oluşturma ile kalıcı bir sorgu dizesi uygulayabilirsiniz. Aşağıdaki örnekte, uygulamanın sürümünün .NET sürümle (8 .NET 8 için) eşleştiğini varsayar:
<script src="_framework/blazor.webassembly.js?version=8"></script>
Betik etiketinin Blazor konumu için bkz. <script>.Blazor
ASP.NET Core