【问题标题】:SSRS Reportviewer v11 fails with large csv parameterSSRS Reportviewer v11 因 csv 参数大而失败
【发布时间】:2015-04-18 05:39:35
【问题描述】:

我有一个在 SSRS 2008 中构建的报告,当用户将大型 csv 作为参数传递给网页中的 ReportViewer 组件时,我遇到了问题。

我已经在 SSRS 中测试了完整参数并生成了报告,但是当通过 ReportView 传递信息时,会引发 Javascript 错误

失败的参数

https://somedomain.com/reportviewer.aspx?Path=/somedomain.com/Report&DateStart=1-Aug-2014&DateEnd=31-Aug-2014&LCRep=akal1,acor1,alan1,aavi1,acus1,arya1,amou1,abal1,afbo1,aack1,andr1,awan1,afuq1,amco1,abou1,afee1,abia1,anth1,asca1,apsi1,agol1,acol1,alab1,btar1,blee1,bmay1,bmcc1,bbou1,rbac1,bcol1,bcur1,rkom1,rtra1,bgmo1,bhat1,bshe1,brad1,bmor1,bffl1,BHur1,bmck1,btri1,bwoh1,bjem1,bomi1,bkmc1,cmeu1,cfer1,carl1,csan1,csie1,cber1,cwbl1,cjcc1,cmda1,cdro1,ceva1,cgha1,crol1,cwas1,chus1,chhe1,cpai1,cpod1,ccal1,cbee1,clyd1,ccas1,cbie1,cchu1,cphi1,damo1,dhug1,dcac1,drol1,dani1,dwon1,dhag1,dalb1,dbar1,dgol1,wgre1,dgre1,dloo1,dmac1,davi1,dawn1,dkun1,djan1,derr1,dpac1,dwig1,egor1,epit1,elei1,ejam1,eken1,emag1,emac1,ebur1,eric1,ewin2,egol1,emod1,efar1,floy1,fnep1,fmag1,fcha1,ghay1,gtuc1,gbab1,ewin1,gdem1,geoc1,gsla1,gjuk1,ggri1,hpuc1,heck1,hjca1,hiki1,imic1,ifer1,igon1,jacq1,jmwi1,jbye1,jgut1,jgam1,jaga1,jwes2,jber1,wbur1,jjer1,jmor1,jtay1,jwax1,jbra1,jkee1,jgue1,jlam1,jnau1,jpel1,jlid1,jnha1,jboh1,jmax1,jwen1,jsac1,jing1,jdow1,jgil1,jgri1,john1,joss1,jpro1,jgsh1,jsta1,jjva1,jsev1,jfis1,jcar1,jcof1,jcfe1,jwpa1,jleo1,knar1,kbut1,kcur1,kary1,kafo1,kqua1,kare1,kbri1,kbai1,kgal1,kmar1,ktin1,khor1,kjor1,kdle1,kmul1,kbit1,kbot1,kebe1,ksch1,lros1,lsie1,lgro1,lcai1,ldev1,llha1,lesl1,ljri1,llaf1,msam1,mwda1,mhya1,mwil1,mkle1,miac1,mboh1,mcap1,mcla1,mmck1,mpmu1,mswi1,mtre1,mshe1,mhee1,mmar1,mrob1,mrud1,mgal1,nhow1,nmac1,npar1,nbel1,nico1,nman1,nand1,peng1,pzon1,prob1,pall1,pber1,pdar1,pdoy1,pfis1,pgod1,plam1,pbel1,pmck1,pcas1,pjen1,pone1,pkas1,pgui1,plav1,rand1,rfur1,rpan1,rpoc1,rtor1,rjsc1,rsta1,rduv1,rkra1,rluo1,rpoh1,rmou1,rcjo1,rfar1,regr1,rtai1,rbej1,rcov1,rpas1,rqui1,rwar1,rkli1,rwow1,spec1,ssca1,sian1,sdhi1,scot1,rjun1,slod1,snic1,scot2,sean1,shar1,cosh1,shei1,smas1,silv1,smil1,ssny1,svaq1,agre1,sgur1,shbr1,sher1,sjmu1,spap1,sjro1,sser1,sske1,such1,sore1,tcol1,tsau1,tnap1,tnea1,tdie1,tjfa1,tmur1,tach1,tmin1,trit1,tdra1,tlac1,tnew1,tsik1,vwor1,vsor1,vjua1,vmoo1,vchi1,wawi1,wqch1,wbow1,whun1,wley1,wyat1,waba1,wwis1

这是我返回的 Javascript 异常。

第 885 行第 13 列未处理的异常 http://somedomain.com:54821/ScriptResource.axd?d=VSuDvN4lmXp8v30Y-Tdw_ULVtosEuP4ipSMcwgw1ALEydnNZvMTFeuT3gKKJbjEPOhKXYnOLoHZl9-dfg1JeFAnpDaWGe1i6ERWN4bL9ZaOEoZWt42dwIsT8R5we_2n8S2D9sjkYf43p-LOD6vL5jVd1mKYQjrDo5hNpHtcFx5D_-3QzpoOJZF9kKCx6injg0&t=ffffffffb53e74b8

0x800a139e - JavaScript 运行时错误: Sys.WebForms.PageRequestManagerServerErrorException:未知错误 在服务器上处理请求时发生。状态码 从服务器返回的是:404

传递查询

如果我减少 LCRep 参数中的项目数,则会生成报告。

https://somedomain.com/reportviewer.aspx?Path=/somedomeain.com/report&DateStart=1-Aug-2014&DateEnd=31-Aug-2014&LCRep=akal1,acor1,alan1,aavi1,acus1,arya1,amou1,abal1,afbo1,aack1,andr1,awan1,afuq1,amco1,abou1,afee1,abia1,anth1,asca1,apsi1,agol1,acol1,alab1,btar1,blee1,bmay1,bmcc1,bbou1,rbac1,bcol1,bcur1,rkom1,rtra1,bgmo1,bhat1,bshe1,brad1,bmor1,bffl1,BHur1,bmck1,btri1,bwoh1,bjem1,bomi1,bkmc1,cmeu1,cfer1,carl1,csan1,csie1,cber1,cwbl1,cjcc1,cmda1,cdro1,ceva1,cgha1,crol1,cwas1,chus1,chhe1,cpai1,cpod1,ccal1,cbee1,clyd1,ccas1,cbie1,cchu1,cphi1,damo1,dhug1,dcac1,drol1,dani1,dwon1,dhag1,dalb1,dbar1,dgol1,wgre1,dgre1,dloo1,dmac1,davi1,dawn1,dkun1,djan1,derr1,dpac1,dwig1,egor1,epit1,elei1,ejam1,eken1,emag1,emac1,ebur1,eric1,ewin2,egol1,emod1,efar1,floy1,fnep1,fmag1,fcha1,ghay1,gtuc1,gbab1,ewin1,gdem1,geoc1,gsla1,gjuk1,ggri1,hpuc1,heck1,hjca1,hiki1,imic1,ifer1,igon1,jacq1,jmwi1,jbye1,jgut1,jgam1,jaga1,jwes2,jber1,wbur1,jjer1,jmor1,jtay1,jwax1,jbra1,jkee1,jgue1,jlam1,jnau1,jpel1,jlid1,jnha1,jboh1,jmax1,jwen1,jsac1,jing1,jdow1,jgil1,jgri1,john1,joss1,jpro1,jgsh1,jsta1,jjva1,jsev1,jfis1,jcar1,jcof1,jcfe1,jwpa1

知道为什么扩展参数列表会导致此故障吗?

编辑

报告已生成至此

http://somedomain.com/ReportViewer.aspx?Path=/Report&DateStart=1-Aug-2014&DateEnd=31-Aug-2014&LCRep=akal1,acor1,alan1,aavi1,acus1,arya1,amou1,abal1,afbo1,aack1,andr1,awan1,afuq1,amco1,abou1,afee1,abia1,anth1,asca1,apsi1,agol1,acol1,alab1,btar1,blee1,bmay1,bmcc1,bbou1,rbac1,bcol1,bcur1,rkom1,rtra1,bgmo1,bhat1,bshe1,brad1,bmor1,bffl1,BHur1,bmck1,btri1,bwoh1,bjem1,bomi1,bkmc1,cmeu1,cfer1,carl1,csan1,csie1,cber1,cwbl1,cjcc1,cmda1,cdro1,ceva1,cgha1,crol1,cwas1,chus1,chhe1,cpai1,cpod1,ccal1,cbee1,clyd1,ccas1,cbie1,cchu1,cphi1,damo1,dhug1,dcac1,drol1,dani1,dwon1,dhag1,dalb1,dbar1,dgol1,wgre1,dgre1,dloo1,dmac1,davi1,dawn1,dkun1,djan1,derr1,dpac1,dwig1,egor1,epit1,elei1,ejam1,eken1,emag1,emac1,ebur1,eric1,ewin2,egol1,emod1,efar1,floy1,fnep1,fmag1,fcha1,ghay1,gtuc1,gbab1,ewin1,gdem1,geoc1,gsla1,gjuk1,ggri1,hpuc1,heck1,hjca1,hiki1,imic1,ifer1,igon1,jacq1,jmwi1,jbye1,jgut1,jgam1,jaga1,jwes2,jber1,wbur1,jjer1,jmor1,jtay1,jwax1,jbra1,jkee1,jgue1,jlam1,jnau1,jpel1,jlid1,jnha1,jboh1,jmax1,jwen1,jsac1,jing1,jdow1,jgil1,jgri1,john1,joss1,jpro1,jgsh1,jsta1,jjva1,jsev1,jfis1,jcar1,jcof1,jcfe1,jwpa1,jleo1,knar1,kbut1,kcur1,kary1,kafo1,kqua1,kare1,kbri1,kbai1,kgal1,kmar1,ktin1,khor1,kjor1,kdle1,kmul1,kbit1,kbot1,kebe1,ksch1,lros1,lsie1,lgro1,lcai1,ldev1,llha1,lesl1,ljri1,llaf1,msam1,mwda1,mhya1,mwil1,mkle1,miac1,mboh1,mcap1,mcla1,mmck1,mpmu1,mswi1,mtre1,mshe1,mhee1,mmar1,mrob1,mrud1,mgal1,nhow1,nmac1,npar1,nbel1,nico1,nman1,nand1,peng1,pzon1,prob1,pall1,pber1,pdar1,pdoy1,pfis1,pgod1,plam1,pbel1,pmck1,pcas1,pjen1,pone1,pkas1,pgui1,plav1,rand1,rfur1

LCRep 参数包含 242 个项目,包括逗号在内总共 1451 个字符。

错误的 Javascript

throw error; 行上的代码中断

function Sys$WebForms$PageRequestManager$_endPostBack(error, executor, data) {
    if (this._request === executor.get_webRequest()) {
        this._processingRequest = false;
        this._additionalInput = null;
        this._request = null;
    }
    var handler = this._get_eventHandlerList().getHandler("endRequest");
    var errorHandled = false;
    if (handler) {
        var eventArgs = new Sys.WebForms.EndRequestEventArgs(error, data ? data.dataItems : {}, executor);
        handler(this, eventArgs);
        errorHandled = eventArgs.get_errorHandled();
    }
    if (error && !errorHandled) {
        throw error;
    }
}

【问题讨论】:

  • 源码第885行是什么?
  • 使用 ReportViewer 组件中的 Javascript 代码更新问题。
  • 它似乎不喜欢你的错误变量......那是什么数据类型?
  • @JeffreyVanLaethem 哪种数据类型?此 Javascript 来自 Microsoft Report Viewer 组件。
  • 可能是 javascript 在 URL 上运行 urlencode,导致其扩展超过 Internet Explorer URL 长度限制 2083。

标签: sql-server reporting-services ssrs-2008 reportviewer


【解决方案1】:

看起来问题出在 URL 的长度上。这已在 this Stackoverflow 帖子和来自 Microsoft 的 article 中讨论过

我认为是 JC。正确的想法是编码将其推到长度限制之上并导致 ReportViewer 出现奇怪的故障。感谢JC的帮助。

【讨论】:

    猜你喜欢
    • 2015-01-04
    • 2018-10-18
    • 2021-09-22
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多