SSRS dışa aktarımı istemcisiz bir VPN portalından geçerken başarısız oluyor: ne farklı
Rapor sayfası işlemeyi kanıtlar, dışa aktarımı değil. Dışa aktarma isteğini portal üzerinden izleyin, başlıkları ve gövdeyi karşılaştırın, sonra her istisnayı dar biçimde sınırlayın.
Rapor tarayıcıda açılıyor, parametreler işleniyor ve dışa aktarma düğmesi bir hata, boş bir indirme veya elektronik tablonun açmayı reddettiği bir dosya üretiyor. Bu kombinasyonun standart bir biçimi vardır. Çalışan bir rapor sayfası işlemeyi ve kimlik doğrulamayı test etmiştir, başka hiçbir şeyi değil. Dışa aktarma, kendi yanıtı olan ayrı bir istektir ve istemcisiz bir portaldan geçerken hiçbir zaman dosya indirmeleri için tasarlanmamış bir yeniden yazma katmanından da geçer.
İki yol, tek çalışan sayfa
İşleme ve dışa aktarma aynı düğmeden başlasa bile farklı işlemlerdir. Rapor sunucusu sayfayı bir tarayıcı için işler ve dışa aktarımı kendi içerik türü ve kendi hata davranışı olan başka bir çıktı uzantısı aracılığıyla işler, dışa aktarma belgelerinin açıkladığı gibi. İlkini kusursuz geçiren bir portal ikincisini yine de bozabilir, çünkü ikincisi portalın görmeyi beklemediği bir yanıttır. İkisi bir oturumu ve bir adresi paylaşır, neredeyse başka hiçbir şeyi paylaşmaz.
Çalışan sayfayı yalnızca kimlik doğrulama ve erişilebilirlik kanıtı olarak görün. Hesabın rapor sunucusuna ulaşabildiğini ve portalın HTML ilettiğini kanıtlar. Dosya yanıtları, içerik yerleşimi başlıkları veya belge yerine indirmeyle biten yönlendirmeler hakkında hiçbir şey söylemez.
Dışa aktarma yolunu tek başına karşılaştırmanın tüm nedeni budur, zaten çalışan sayfayı yeniden test etmek yerine. Bir oturumu paylaşan iki istek hâlâ iki istektir.
Dışa aktarmanın nerede kırıldığını belirleyen üç koşul
Üç soru arızayı hızla yerleştirir ve her yanıt farklı bir sahibi işaret eder.
Birincisi, aynı rapor, hesap ve biçim iç ağdan doğru şekilde dışa aktarılıyor mu? Öyleyse rapor sunucusu ve işleyicisi iyidir ve fark erişim yolundadır. İkincisi, başarısız yanıt bir dosya içerik türü mü taşıyor, yoksa dosya uzantısı giymiş bir HTML sayfası mı? Bu, işleyici hatasını portaldan gelen bir değiştirmeden ayırır. Üçüncüsü, portal isteğin URL'sini yeniden mi yazıyor yoksa yanıttan başlıkları mı kaldırıyor? Yeniden yazılmış bir URL tamamen farklı bir uç noktaya inebilir.
Herhangi bir ayarı değiştirmeden önce üçüne de yanıt verin, çünkü her birinin farklı bir çözümü vardır. İşleyici hatası rapor sunucusuna aittir, değiştirilmiş gövde portala aittir ve kaldırılmış bir başlık hata değil, politika sorunudur.
Yanıtları yazın. Bu üç satırdan kurulan bir destek vakası on ekran görüntüsüne değer.
Durum kodu yerine dışa aktarma yanıtını okuyun
Başarılı bir HTTP durumu yalnızca bir şeyin isteği yanıtladığını kanıtlar. Gövdeyi ve başlıkları birlikte inceleyin, çünkü ilginç arıza yanlış içerik taşıyan başarılı bir yanıttır.
curl -sS -D export.headers -o export.bin --location "https://portal.example.com/reports/export?format=xlsx"
file export.bin
head -c 300 export.bin
Başlık dökümü içerik türünü ve portalın döndürdüğü her içerik yerleşimini gösterir. file komutu gövdenin gerçekte ne olduğunu tanımlar ve elektronik tablonun beklendiği yerde bir metin dosyası klasik değiştirilmiş oturum açma sayfasıdır. head komutu tüm raporu bir terminale boşaltmadan HTML'yi tanımaya yetecek kadarını gösterir.
Bunun herhangi bir parçasını paylaşmadan önce oturum çerezlerini ve belirteçleri kaldırın. Çalışan bir dışa aktarımın kaydı yararlı kanıttır ve başkasına ait bir oturumun kaydı bir olaydır.
İstisnayı hesaba değil uygulamaya sınırlayın
Portal yanıtı yeniden yazıyor veya engelliyorsa, baştan çıkarıcı onarım tüm siteyi muaf tutmak veya raporu anonim yapmaktır. İkisi de indirmeyi düzeltir ve portalın var olma nedenini ortadan kaldırır. Kapsamı dar bir istisna tek bir uygulama yolunu, tek bir içerik türünü ve tek bir yönü adlandırır ve politikayı elinde tutan için incelenebilir kalır.
Gerçekten çalıştırdığınız ağ geçidi sürümünü ve onun belgelenmiş uygulama ayarlarını kullanın. Bir satıcının bir zamanlar trafiği değiştirmeden bıraktığını söylediği bir seçenek genel bir talimat değildir ve onu eski bir forum başlığından kopyalamak geçici bir istisnanın kalıcı mimariye dönüşme yoludur.
İstisna bu kadar dar sınırlanamıyorsa, dışa aktarım muhtemelen portalın arkasında değil, farklı bir erişim yöntemiyle iç yola aittir. Tüm site için muafiyet portal sahibinin kararıdır, tek bir rapor için bir dolambaç değildir.
Kaydet iletişim kutusunu değil, dışa aktarımı kabul edin
Son kontrol dosyanın kendisidir: açılır, beklenen sütunları tutar ve toplamları kullanıcının onayladığı raporla eşleşir.
Bir Kaydet iletişim kutusunun görünmesi başarı değildir ve onarım uyarısıyla açılan bir dosya da başarı değildir. Ekrandaki raporla bir satır sayısını ve bilinen bir değeri karşılaştırın, çünkü kesilmiş bir dışa aktarım yalnızca dosya boyutuna bakan her testi geçer. Sonra ikinci kez dışa aktarın, çünkü bir kez yanlış gövdeyi sunan bir önbellek katmanı bir sonraki denemede doğru olanı sunabilir.
Kullanıcının ihtiyaç duyduğu iş akışını kabul edin ve bundan daha azını değil. Yanlış uygulamada açılan bir indirme hâlâ başarısız bir dışa aktarımdır.