2009-03-04 14 views
1

Kullanıcıların dosya indirmesi için bazı bağlantılar sağlayan bir kılavuzum var. Dosyalar uygulamanın dışında saklanır, yol referansları veritabanından okunur ve istenen her bir dosyaya hizmet vermek için bir HTTP işleyicisi (* .ashx) kullanılır. Bununla birlikte, var olmayan bir dosyaya işaret eden bir veritabanı girişi olabileceği düşünülmektedir. FileNotFoundException'u yakalarım, ancak eksik dosya hakkında kullanıcıyı bilgilendirmek için en iyi yöntem hangisi olacağından emin değilim (böylece desteğe başvurabilirler).Bir dosyada 404 işlemek için en iyi yol HTTP işleyicisi indir?

İlk fikir, yanıt için standart bir 404 kodu belirlemektir ve şu an yaptığım şey budur.

Eksik bir dosya hakkında bir bildirim (jQuery) görüntülemek daha yararlı bir yol olacaktır, ancak dosya indirme AJAX'ta yapılmadığından, bu iki adımlı bir işlemi içerecektir - istemci tarafı onclick işleyicisi bir web hizmetini çağırır Eğer dosya varsa, kontrol etmek için metot, daha sonra tıklamayı iptal ederim (false) ve kullanıcıya dostça bir mesaj gösteriyorum. Ancak dosya varsa, normal yürütme ile devam ediyorum. Ama bu yine başka bir sunucu çağrısı ekler.

Benzer bir sorunla da uğraştınız mı? Bunu nasıl çözdün?

Bazı açıklamalar - uygulama ASP.NET 2.0'da yerleşiktir ve web servis yöntemlerini çağırmak için jQuery'yi kullanır.

cevap

1

Pawel, ... zaten soruyu yanıtladı

... görünüyor yukarıdaki I belirterek ...

(onlar desteğine başvurun böylece) Diskte bulunmayan dosyanın kullanıcısını bilgilendiren ve onlara destek ofisiyle nasıl iletişim kuracağınıza dair bilgi veren bir özel 404 sayfası oluşturmanızı öneririm.

Dosyaları işlemek için bir HTTP İşleyicisi oluşturdum ve diskte bir dosya yoksa 404 yanıtı döndürüyorum. Bir 404 yanıtı atılmışsa, özel bir sayfa görüntülemek için IIS kurdum. (Ve aynı hata için 500 yapıyorum).

İhtiyaçlarınıza uygun çözümü bularak bu yardımcı olur ve iyi şanslar dileriz!

+0

Ancak, eksik bir dosya durumu ile bir sayfa eksik olduğunda ayırt edemiyorum. 404 sayfasında, "bir dosyayla iletişim desteğini indirmeye çalışıyorsanız, bulunamayacağı bir sayfaya erişmeye çalışıyorsanız," gibi daha ayrıntılı bir açıklama yapabilirim ...) –

+1

Belirli bir 404 sayfasında bulunmayan bir dosyaya yeniden yönlendirmek için HTTP işleyicinizde uygulayabilirsiniz, aksi takdirde 'normal' bir 404 döndürürsünüz? – RuudKok

+0

Doh! Tabii ki yönlendirme çalışıyor! Basit bir Response.Redirect() yapmak yerine bir durum kodu ileterek 404 sayfasına yönlendirmek için Framework'e güveniyordum. Çok açık ... Teşekkürler! –