Export SSRS selhává přes VPN portál bez klienta: co se liší
Stránka sestavy dokazuje vykreslení, ne export. Sledujte požadavek na export přes portál, porovnejte hlavičky a tělo a potom každou výjimku zužte.
Sestava se otevře v prohlížeči, parametry se vykreslí a tlačítko exportu vyvolá chybu, prázdné stažení nebo soubor, který tabulkový procesor odmítne otevřít. Tato kombinace má standardní podobu. Fungující stránka sestavy otestovala vykreslení a ověřování a nic jiného. Export je samostatný požadavek s vlastní odpovědí a přes portál bez klienta prochází také vrstvou přepisování, která nikdy nebyla navržena pro stahování souborů.
Dvě cesty, jedna fungující stránka
Vykreslení a export jsou různé operace, i když začínají stejným tlačítkem. Server sestav vykreslí stránku pro prohlížeč a export připraví přes jiné výstupní rozšíření s vlastním typem obsahu a vlastním chováním při chybě, jak popisuje dokumentace k exportu. Portál, který první propustí bezchybně, může druhé stále zkomolit, protože druhé je odpověď, kterou portál neočekával. Obě sdílejí relaci a adresu a téměř nic dalšího.
Berte fungující stránku jen jako důkaz ověřování a dostupnosti. Dokazuje, že účet dosáhne na server sestav a že portál předává HTML. Nic neříká o odpovědích se soubory, hlavičkách umístění obsahu nebo přesměrováních, která končí stažením, nikoli dokumentem.
To je celý důvod porovnávat cestu exportu samostatně, místo abychom znovu testovali stránku, která už funguje. Dva požadavky, které sdílejí relaci, jsou pořád dva požadavky.
Tři podmínky, které určují, kde se export zlomí
Tři otázky rychle určí místo poruchy a každá odpověď ukazuje na jiného vlastníka.
Za prvé, exportuje se stejná sestava, účet a formát správně z interní sítě? Pokud ano, server sestav a jeho vykreslovací modul jsou v pořádku a rozdíl je v přístupové cestě. Za druhé, nese neúspěšná odpověď typ obsahu souboru, nebo stránku HTML s příponou souboru? To odděluje chybu vykreslování od záměny portálem. Za třetí, přepisuje portál URL požadavku nebo odstraňuje hlavičky z odpovědi? Přepsaná URL může skončit na zcela jiném koncovém bodu.
Odpovězte na všechny tři otázky, než změníte nastavení, protože každá má jinou nápravu. Porucha vykreslování patří serveru sestav, nahrazené tělo patří portálu a odstraněná hlavička je otázka politiky, ne chyba.
Odpovědi si zapište. Případ podpory postavený na těchto třech řádcích má cenu deseti snímků obrazovky.
Čtěte odpověď exportu, ne stavový kód
Úspěšný stav HTTP dokazuje jen to, že něco na požadavek odpovědělo. Prohlédněte tělo i hlavičky společně, protože zajímavá porucha je úspěšná odpověď s nesprávným obsahem.
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
Výpis hlaviček ukazuje typ obsahu a jakékoli umístění obsahu, které portál vrátil. Příkaz file určí, co tělo skutečně je, a textový soubor tam, kde se očekává tabulka, je klasická nahrazená přihlašovací stránka. Příkaz head ukáže dost na rozpoznání HTML, aniž by vysypal celou sestavu do terminálu.
Odstraňte relace cookies a tokeny, než cokoli z toho sdílíte. Záznam fungujícího exportu je užitečný důkaz a záznam relace, která patří někomu jinému, je incident.
Zužte výjimku na aplikaci, ne na účet
Pokud portál odpověď přepisuje nebo blokuje, lákavou opravou je vyjmout celý web nebo udělat sestavu anonymní. Obojí opraví stahování a odstraní důvod, proč portál existuje. Zúžená výjimka pojmenuje jednu cestu aplikace, jeden typ obsahu a jeden směr a zůstává přezkoumatelná tím, kdo vlastní politiku.
Použijte verzi brány, kterou skutečně provozujete, a její dokumentované nastavení aplikace. Volba, kterou dodavatel kdysi popsal jako ponechávající provoz beze změny, není obecný pokyn a kopírování ze starého vlákna fóra je způsob, jak se dočasná výjimka stane trvalou architekturou.
Pokud výjimku nelze tak úzce omezit, export pravděpodobně patří na interní cestu s jiným způsobem přístupu, ne za portál. Plošné vyjmutí je rozhodnutí pro vlastníka portálu, ne obchvat pro jednu sestavu.
Přijměte export, ne dialog Uložit
Poslední kontrolou je samotný soubor: otevře se, obsahuje očekávané sloupce a jeho součty odpovídají sestavě, kterou uživatel schválil.
Zobrazení dialogu Uložit není úspěch a soubor, který se otevře s upozorněním na opravu, také není úspěch. Porovnejte počet řádků a jednu známou hodnotu se sestavou na obrazovce, protože zkrácený export projde každým testem, který se dívá jen na velikost souboru. Potom exportujte podruhé, protože vrstva mezipaměti, která jednou poslouží špatné tělo, může při dalším pokusu posloužit správné.
Přijměte pracovní postup, který uživatel potřeboval, a nic méně. Stažení, které se otevře ve špatné aplikaci, je pořád neúspěšný export.