Report viewer 14 你不知道的事情

  • 785
  • 0
  • 2022-08-17

Report Viewer 14 你不知道的事情

更新20220817 因緣際會突然在網路搜尋看到自己文章,發現了這一篇,補上解決方法

 

//關閉微軟 Reporting Service 解決無內網需等timeout的問題 ReportViewer1.EnableTelemetry = false;



*******************************************************************************************

故事是這麼開始的,公司買了VS 2017,所以在開發web report viewer 當然就會很自然的想要用用新的版本 

vs2017最新的Report viewer 是14版本

其實在開發的過程中都沒有什麼問題,多瀏覽器完美支援~而且也不在只有IE才能列印了

當一切都很順利的開發完也上線了,USER卻反應開報表很"慢",心想要點時間載入報表也正常

我自己測試也大概要3~5秒完全顯示資料。但到了USER的電腦實際測試卻發現 竟然要1X秒,踢阿。

難怪USER要崩潰

因為USER的電腦是沒有對外網路,也就是只有內網無法對外連線。

一開始當然不會去懷疑report有去對外連線,一直都在檢查我的程式,看看是不是有引用什麼Plugin才會這麼慢。

後來放棄了,請USER先忍耐吧。我在找找看怎麼解決。

不過後來因為東西多,短時間沒有找到就先放棄了。

過段時間USER上簽說申請開放對外網路,理由:需要對外網路報表才會正常

逼的我不得再次查找原因。

這次想說那我來看看監控看看網路流量這段看看到底是卡在哪裡。
​​
意外的發現,竟然有一支我不知道的js是需要對外的。

所以只要是沒有對外網路的電腦,每次在載入報表時都需要等這個js timeout 才會繼續執行

萬萬沒想到竟然是被XX表了......

report viewer 14的dll 透過.axd載入多個js跟css(我猜應該是為了要符合RWD及解決多瀏覽器的操作)

其中一支js(RSTelemetry.js)會去呼叫一支需要連外網的js(ai.0.js),用了各種方法,包含載入DOM後想要去串改URL都沒有成功。

官網也沒有找到關於這一部分,該怎麼設定或者是怎麼關閉不要讓這支js載入的方法。

最後只好放棄使用14版本,降版回11了....速度回到了3~5秒,一切都正常了。

網路上幾乎都沒有提到這個問題,也許是大家都是有開放對外網路~"~

吃了悶虧,讓我覺得太新的東西不要搶先使用​的好....自己玩玩可以但用在公司的專案上可能還需要再等等

 


寫文章並不為了什麼,只是撰寫文章的過程中,可以使我的去思考更多層面的東西,寫的過程中也可以再次回味學習到的東西,並深刻的印象在腦中。


當你還在找這些資訊學習時,我想安逸的生活還不適合你,一起努力吧。