ASP.NET 2.0 - app_offline.htm nasıl kullanılır


120

app_offline.htmBir .NET 2.0 uygulamasının köküne yerleştirilebilecek dosya hakkında okudum, bu da aslında uygulamayı kapatacak ve diğer sayfaların istenmesini engelleyecektir.

Dosyayı köke yerleştirdim ve sitem hala yükleniyor. IIS'de varsayılan belgelere girdim ve olarak ayarladım app_offline.htmve site hala yükleniyor (bu bir önbelleğe alma sorunu olabilir)

Her neyse, bunu kullanırken sorun yaşayan var mı? Yanlış bir şey mi yapıyorum?


Bunu belgeleyen bir Microsoft sayfası var mı?
Coops



Web uygulaması içeriğimi gizlemek ve geçici sayfayı görüntülemek için app_offline.htm'yi başarıyla kullandım. Ancak app_offline.htm dosyasını sildikten sonra bile orijinal verileri gözden geçirirken sorun yaşıyorum. Benim sorum şu: stackoverflow.com/questions/42979042/…
naz786

Yanıtlar:


160

Geçmişte siteleri herhangi bir sorun olmadan kapatmak / güncellemek için son derece kullanışlı app_offline.htm numarasını kullandım.

Aslında "app_offline.htm" dosyasını IIS içinde yapılandırdığınız web sitesinin "köküne" yerleştirdiğinizden emin olun.

Ayrıca dosyanın tam olarak olması gerektiği gibi adlandırıldığından emin olun: app_offline.htm

Bunun dışında, bu dosyanın işlenmesi (bu belirli adla) IIS'nin kendisi (IIS v6 için) yerine ASP.NET çalışma zamanı tarafından yürütüldüğünden, IIS'de yapmanız gereken başka hiçbir değişiklik olmamalıdır.

Bununla birlikte, bu dosyayı sitenizin kök dizinine yerleştirmek, uygulamayı "kapatmaya" ve "app_offline.htm" dosyasının içeriğini görüntülemeye zorlasa da, mevcut tüm istekler gerçek web sitesini sunmaya devam edecektir. onlara. App_offline.htm içeriğini yalnızca yeni istekler alır.

Hala sorun yaşıyorsanız, daha fazla bilgi için aşağıdaki bağlantıları deneyin:

Scott Gu'nun App_Offline.htm

App_Offline.htm ve "IE Dostu Hatalar" özelliği üzerinde çalışma

App_offline.htm mevcut istekleri mi yoksa yalnızca yeni istekleri mi durduracak?


6
@JackM - Sorun değil! Aslında, dosyayı web sitemde sık sık bırakıyorum ve ona "xapp_offline.htm" gibi bir ad veriyorum. Bu nedenle orada hiçbir şey yapmadan oturur. Sitenin bir kısmını veya tamamını yükseltmek istediğimde, dosyayı yeniden adlandırıyorum ve "x" önekini kaldırıyorum (bu genellikle FTP üzerinden yapılır). Bu siteyi benim için kapatıyor, yükseltmeyi yapıyorum ve ardından dosyayı "x" önekiyle yeniden adlandırıyorum!
CraigTP

@JackMarchetti - Bu, global.asax yönlendirmesini kullanan ASP.NET MVC web siteleri için de çalışacak mı? Buradaki tüm önerileri kontrol ettim, ancak bunu çalıştırma konusunda hala şansım yok :(
Squig

Önceki yorumu güncelleyin: Şimdi çalışıyor ve bir tür önbelleğe alma sorunu olmalı. <CTRL> + Refresh kullandım, ancak muhtemelen başka bir yerde önbelleğe alınıyordu.
Squig

Bunu belgeleyen bir Microsoft sayfası var mı?
Coops

1
@CodeBlend ScottGu'nun bloguna bağlantı oldukça resmi, ancak sanırım MSDN'deki en "resmi" Microsoft sayfası şu olacak: msdn.microsoft.com/en-us/library/vstudio/…
CraigTP

47

App_offline.htm dosyanızın en az 512 bayt uzunluğunda olduğundan emin olun. Sıfır baytlık bir app_offline.htm'nin hiçbir etkisi olmayacaktır.

GÜNCELLEME: ASP.NET / IIS'nin daha yeni sürümleri, bunu ilk yazdığımdan daha iyi davranabilir.

GÜNCELLEME 2: ASP.NET MVC kullanıyorsanız, web.config dosyasına aşağıdakileri ekleyin:

<?xml version="1.0"?>
<configuration>
    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true" />
    </system.webServer>
</configuration>

1
Tam dosya adına ve boş bir dosyaya sahiptim ve işe yaradı - kullandığım url'den bağımsız olarak boş sayfa görüntüleniyor
Coops

512 bayt limit sorunu için bu bağlantıyı kontrol edin: codeproject.com/Articles/21319/…
Massood Khaari

Bu, özellikle sayfayı kendi hata mesajıyla değiştirebilen eski IE sürümleri için geçerlidir
ChewToy

Scott Gu, bunu blogunda
Matt

2
MVC sitemin yalnızca web.config'imi tamamen yukarıdakilerle değiştirerek uygulama çevrimdışı moduna girmesini sağlayabildim
Matthew Lock

14

Bunun IIS 6 ve 7.x ve .NET 2, 3 ve 4.x'te aynı şekilde davrandığına dikkat edin.

Ayrıca app_offline.htm mevcut olduğunda, IIS'nin bu http durum kodunu döndüreceğini unutmayın:

HTTP/1.1 503 Service Unavailable

Bunların hepsi tasarım gereğidir. Bu, yük dengeleyicinizin (veya her neyse) sunucunun çevrimdışı olduğunu görmesini sağlar.


1
app_offline.htmBakım pencereniz sırasında kullanıcılara görüntülemek istediğiniz için yük dengeleyicinizin sunucunun çevrimdışı olduğunu düşünmesini kesinlikle istemezsiniz.
Luke

2
@Luke: 503 yanıtının neden yararlı olduğuna dair daha iyi bir örnek: Google'ın web tarayıcısının, "site çalışmıyor" içeriğinizi dizine eklemeye karar vermek yerine (ve sitenizi bir sürü yinelenen içeriği). Ayrıca, CDN'nizin kaynağınızın kapalı olduğunu tespit etmesi ve bu nedenle içeriğinizi önbelleğe almaktan kaçınması yararlı olabilir.
Brian

10

Olası İzin Sorunu

Bu gönderinin oldukça eski olduğunu biliyorum, ancak benzer bir sorunla karşılaştım ve dosyam doğru yazılmıştı.

Başlangıçta app_offline.htm dosyasını başka bir konumda oluşturdum ve sonra onu uygulamamın köküne taşıdım. Kurulumum nedeniyle bir izin sorunum vardı.

Web sitesi sanki orada yokmuş gibi davrandı. Dosyayı taşımak yerine kök dizinde oluşturmak sorunumu çözdü. (Ya da sadece özellikler-> güvenlikteki izni düzeltebilirsiniz)

Umarım birine yardımcı olur.


4

app_offline.htmIIS'de sanal dizinin veya web sitesinin kök dizininde olduğundan emin olun .


Kesinlikle kökündedir. girdim var \ wwwroot [WebsiteDirectory] \ app_offline.htm
Jack Marchetti

3

Dosya adı uzantılarının gezginde görünür olduğundan ve dosya adının aslında

app_offline.htm

değil

app_offline.htm.htm


0

Orijinal soruya çok benzer bir sorunla karşılaştım ve çözmem biraz zaman aldı.

Başka birinin bir MVC uygulaması üzerinde çalışıp bu iş parçacığının yolunu bulması durumunda, tanımlanmış uygun .Net aspnet_isapi.dll için bir joker karakter eşlemesine sahip olduğunuzdan emin olun. Bunu yaptığım anda app_offline.htm'm beklendiği gibi davranmaya başladı.


IIS 6 Yapılandırma Adımları

IIS Uygulama Özellikleri'nde sanal Dizin sekmesini seçin.

Uygulama Ayarları altında, Yapılandırma düğmesine tıklayın.

Joker karakter uygulama haritaları altında, Ekle düğmesini tıklayın.

C: \ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_isapi.dll yazın, Tamam'a tıklayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.