SSRS-eksporto malsukcesas tra senklienta VPN-portalo: kio diferencas
La raporta paĝo pruvas bildigon, ne eksporton. Sekvu la eksportpeton tra la portalo, komparu kapliniojn kaj korpon, poste limigu ajnan escepton mallarĝe.
La raporto malfermiĝas en la retumilo, la parametroj bildiĝas, kaj la eksporta butono produktas eraron, malplenan elŝuton aŭ dosieron, kiun la kalkultabelo rifuzas malfermi. Tiu kombinaĵo havas norman formon. Funkcianta raporta paĝo testis bildigon kaj aŭtentikigon kaj nenion alian. La eksporto estas aparta peto kun sia propra respondo, kaj tra senklienta portalo ĝi ankaŭ trapasas reverkan tavolon, kiu neniam estis desegnita por dosierelŝutoj.
Du vojoj, unu funkcianta paĝo
Bildigo kaj eksporto estas malsamaj operacioj eĉ kiam ili komenciĝas per la sama butono. La raportservilo bildigas la paĝon por retumilo kaj bildigas la eksporton per alia eliga etendaĵo kun propra entipigo kaj propra erara konduto, kiel priskribas la eksporta dokumentaro. Portalo, kiu perfekte trapasigas la unuan, ankoraŭ povas fuŝi la duan, ĉar la dua estas respondo, kiun la portalo ne atendis vidi. La du dividas sesion kaj adreson, kaj preskaŭ nenion alian.
Traktu la funkciantan paĝon nur kiel pruvon pri aŭtentikigo kaj atingeblo. Ĝi pruvas, ke la konto povas atingi la raportservilon kaj ke la portalo plusendas HTML. Ĝi diras nenion pri dosierrespondoj, kaplinioj de enhava lokigo aŭ alidirektoj, kiuj finiĝas per elŝuto anstataŭ per dokumento.
Tio estas la tuta kialo kompari la eksportan vojon aparte anstataŭ retesti la paĝon, kiu jam funkcias. Du petoj, kiuj dividas sesion, restas du petoj.
Tri kondiĉoj, kiuj decidas, kie la eksporto rompiĝas
Tri demandoj rapide lokas la misfunkcion, kaj ĉiu respondo montras al malsama posedanto.
Unue, ĉu la sama raporto, konto kaj formato ĝuste eksportiĝas el la interna reto? Se jes, la raportservilo kaj ĝia bildigilo estas en ordo kaj la diferenco kuŝas en la alirvojo. Due, ĉu la malsukcesa respondo portas dosieran entipigon, aŭ HTML-paĝon kun dosiera finaĵo? Tio apartigas bildigilan eraron disde anstataŭigo fare de la portalo. Trie, ĉu la portalo reverkas la petan URL-on aŭ forigas kapliniojn el la respondo? Reverka URL-o povas surteriĝi sur tute alia finpunkto.
Respondu ĉiujn tri antaŭ ol ŝanĝi agordon, ĉar ĉiu havas alian rimedon. Bildigila misfunkcio apartenas al la raportservilo, anstataŭigita korpo apartenas al la portalo, kaj forigita kaplinio estas demando pri politiko, ne eraro.
Skribu la respondojn. Subtena kazo konstruita el tiuj tri linioj valoras dek ekrankopiojn.
Legu la eksportan respondon anstataŭ la statusan kodon
Sukcesa HTTP-statuso pruvas nur, ke io respondis al la peto. Kontrolu la korpon kaj la kapliniojn kune, ĉar la interesa misfunkcio estas sukcesa respondo portanta la malĝustan enhavon.
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
La kaplinio-eligo montras la entipigon kaj ajnan enhavan lokigon, kiun la portalo resendis. La komando file identigas, kio la korpo efektive estas, kaj teksta dosiero tie, kie kalkultabelo estis atendita, estas la klasika anstataŭigita salutpaĝo. La komando head montras sufiĉe por rekoni HTML sen ŝuti tutan raporton en terminalon.
Forigu sesiajn kuketojn kaj ĵetonojn antaŭ ol kunhavigi ajnan parton de ĝi. Kaptaĵo de funkcianta eksporto estas utila pruvo, kaj kaptaĵo de sesio apartenanta al iu alia estas incidento.
Limigu la escepton al la aplikaĵo, ne al la konto
Se la portalo reverkas aŭ blokas la respondon, la tentiga riparo estas escepti la tutan retejon aŭ igi la raporton anonima. Ambaŭ riparas la elŝuton kaj forigas la kialon, ke la portalo ekzistas. Limigita escepto nomas unu aplikaĵan vojon, unu entipigon kaj unu direkton, kaj ĝi restas revisebla fare de tiu, kiu posedas la politikon.
Uzu la pordegversion, kiun vi efektive funkciigas, kaj ĝiajn dokumentitajn aplikaĵajn agordojn. Opcio, kiun vendisto iam priskribis kiel lasanta trafikon senŝanĝa, ne estas ĝenerala instrukcio, kaj kopii ĝin el malnova forumfadeno estas kiel portempa escepto fariĝas permanenta arkitekturo.
Se la escepto ne povas esti limigita tiel mallarĝe, la eksporto verŝajne apartenas al la interna vojo kun alia alirmetodo anstataŭ malantaŭ la portalo. Escepto por la tuta retejo estas decido por la portalposedanto, ne provizora solvo por unu raporto.
Akceptu la eksporton, ne la konservan dialogon
La lasta kontrolo estas la dosiero mem: ĝi malfermiĝas, ĝi tenas la atenditajn kolumnojn, kaj ĝiaj sumoj kongruas kun la raporto, kiun la uzanto aprobis.
La apero de konserva dialogo ne estas sukceso, kaj dosiero, kiu malfermiĝas kun riparaverto, ankaŭ ne estas sukceso. Komparu vican kalkulon kaj unu konatan valoron kun la surskriba raporto, ĉar tranĉita eksporto trapasas ĉiun teston, kiu rigardas nur dosiergrandon. Poste eksportu duan fojon, ĉar kaŝtavolo, kiu unufoje servas la malĝustan korpon, eble servos la ĝustan en la sekva provo.
Akceptu la laborfluon, kiun la uzanto bezonis, kaj nenion malpli. Elŝuto, kiu malfermiĝas en la malĝusta aplikaĵo, estas ankoraŭ malsukcesa eksporto.