SSRS-eksport mislearret troch in kliïntleas VPN-portaal: wat oars is
De rapportside bewiist werjaan, net eksport. Folgje it eksportfersyk troch it portaal, fergelykje kopteksten en lichem, en behein dan elke útsûndering nau.
It rapport iepenet yn de browser, de parameters wurde werjûn, en de eksportknop produsearret in flater, in lege download of in bestân dat de rekkenblêd wegert te iepenjen. Dy kombinaasje hat in standertfoarm. In wurkjende rapportside hat werjaan en ferifikaasje test en fierder neat. De eksport is in apart fersyk mei syn eigen antwurd, en troch in kliïntleas portaal giet it ek troch in werskriuwlaach dy't nea foar bestânsdownloads ûntwurpen wie.
Twa paden, ien wurkjende side
Werjaan en eksportearje binne ferskate operaasjes, sels as se fan deselde knop begjinne. De rapporttsjinner jout de side wer foar in browser en jout de eksport wer troch in oare útfierútwreiding mei syn eigen ynhâldstype en syn eigen flatergedrach, lykas de eksportdokumintaasje beskriuwt. In portaal dat it earste perfekt trochlit, kin it twadde dochs skansearje, om't it twadde in antwurd is dat it portaal net ferwachte te sjen. De twa diele in sesje en in adres, en hast neat oars.
Behannelje de wurkjende side allinnich as bewiis foar ferifikaasje en berikberens. It bewiist dat it akkount de rapporttsjinner berikke kin en dat it portaal HTML trochstjoert. It seit neat oer bestânsantwurden, kopteksten foar ynhâldspleatsing of trochferwizings dy't yn in download einigje ynstee fan yn in dokumint.
Dat is de hiele reden om it eksportpaad op himsels te fergelykjen ynstee fan de side dy't al wurket op 'e nij te testen. Twa fersiken dy't in sesje diele, binne noch altyd twa fersiken.
Trije betingsten dy't beslisse wêr't de eksport brekt
Trije fragen pleatse de flater fluch, en elk antwurd wiist nei in oare eigner.
Earst, eksportearret itselde rapport, itselde akkount en itselde formaat korrekt út it ynterne netwurk? As dat sa is, binne de rapporttsjinner en syn werjaanmasine yn oarder en leit it ferskil yn it tagongspaad. Twads, draacht it mislearre antwurd in bestânsynhâldstype, of in HTML-side mei in bestânsefterheaksel? Dat skiedt in flater fan de werjaanmasine fan in ferfanging troch it portaal. Treds, skriuwt it portaal de URL fan it fersyk oer of hellet it kopteksten út it antwurd? In oerskreaune URL kin op in hiel oar einpunt telâne komme.
Beantwurdzje alle trije foardat jo in ynstelling feroarje, om't elk in oare remedy hat. In flater fan de werjaanmasine heart by de rapporttsjinner, in ferfongen lichem heart by it portaal, en in fuorthelle koptekst is in beliedsfraach, net in flater.
Skriuw de antwurden op. In stypgefal boud út dy trije rigels is tsien skermôfbyldings wurdich.
Lês it eksportantwurd ynstee fan de statuskoade
In suksesstatus fan HTTP bewiist allinnich dat eat it fersyk beantwurde. Undersykje it lichem en de kopteksten tegearre, om't de nijsgjirrige flater in suksesfol antwurd is dat de ferkearde ynhâld draacht.
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
De koptekstútfier toant it ynhâldstype en elke ynhâldspleatsing dy't it portaal weromjoech. It kommando file identifisearret wat it lichem eins is, en in tekstbestân wêr't in rekkenblêd ferwachte waard, is de klassike ferfongen oanmeldside. It kommando head toant genôch om HTML te werkenen sûnder in hiel rapport yn in terminaal te stoarten.
Fuortsmite sesjekoekjes en tokens foardat jo eat dêrfan diele. In opname fan in wurkjende eksport is nuttich bewiis, en in opname fan in sesje dy't oan in oar heart, is in ynsidint.
Behein de útsûndering ta de applikaasje, net it akkount
As it portaal it antwurd oerskriuwt of blokkearret, is de ferlokjende reparaasje om de hiele site frij te stellen of it rapport anonym te meitsjen. Beide reparearje de download en helje de reden fuort wêrom't it portaal bestiet. In beheinde útsûndering neamt ien applikaasjepaad, ien ynhâldstype en ien rjochting, en it bliuwt te reviewen foar wa't it belied hat.
Brûk de gateway-ferzje dy't jo echt draaie en syn dokumintearre applikaasje-ynstellingen. In opsje dat in leveransier ea beskreau as it ferkear ûnferoare litten, is gjin algemiene ynstruksje, en it kopiearjen fan in âld forumtried is hoe't in tydlike útsûndering permaninte arsjitektuer wurdt.
As de útsûndering net sa nau beheind wurde kin, heart de eksport wierskynlik by it ynterne paad mei in oare tagongsmethode ynstee fan efter it portaal. In frijstelling foar de hiele site is in beslút foar de portaleigner, net in omwei foar ien rapport.
Akseptearje de eksport, net de Bewarje-dialoog
De lêste kontrôle is it bestân sels: it iepenet, it hâldt de ferwachte kolommen, en syn totalen komme oerien mei it rapport dat de brûker goedkard hat.
It ferskinen fan in Bewarje-dialoog is gjin sukses, en in bestân dat mei in reparaasjewarskôging iepenet is ek gjin sukses. Fergelykje in rigeoantal en ien bekend wearde mei it rapport op it skerm, om't in ôfknipt eksport elke test trochstiet dy't allinnich nei bestânsgrutte sjocht. Eksportearje dan in twadde kear, om't in cachelaach dy't ien kear it ferkearde lichem tsjinnet, de folgjende kear it goede tsjinje kin.
Akseptearje de wurkstream dy't de brûker nedich hie, en neat minder. In download dy't yn de ferkearde applikaasje iepenet, is noch altyd in mislearre eksport.