簡體   English   中英

當報表包含參數時,使用WebClient訪問Reporting Services導出

[英]Access Reporting Services Export using WebClient when the report has parameters

嘗試使用WebClient從Reporting Services導出報告時遇到了一個問題。

如果我使用代碼加載不包含任何參數的報告,則一切正常,一旦嘗試傳遞參數,就會收到500服務器錯誤。

如果我在Web瀏覽器中點擊了Reporting Services URL,該報告將很好地加載,並且它將采用在查詢字符串中指定的參數值,並以Excel格式返回該報告。

這是我過去所做的事情,因此對於問題所在確實感到困惑。 下面是我正在使用的一些代碼,因為這樣可以在沒有參數的報表中正常工作。 無論如何,這不是最終代碼,但我需要先使其與參數一起使用

string url = "http://localhost/Reportserver?/ReportsFolder%2fTheReport&rs:Format=EXCEL&rs:Command=Render&Start=15-01-2013&End=15-01-2013";

WebClient c = new WebClient();
c.UseDefaultCredentials = true;
c.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
byte[] data = c.DownloadData(url);

當在Web瀏覽器中打開鏈接時,它工作正常,這使我很困惑,並且僅在具有參數的報表中才會出現此問題。

UPDATE

我剛剛意識到問題出在哪里,那是日期的格式。 我輸入的是英國格式的日期dd / mm / yyyy(15-01 / 2013)

這仍然是一個奇怪的想法,因為將URL粘貼到Web瀏覽器中時以英國格式提供可以很好地工作。

使用上面的WebClient代碼提供英國日期時,出現錯誤。 我不確定為什么使用這兩種方法都會有所不同,這對我來說不再是問題,但仍然有興趣知道為什么會這樣...

通過WebClient發送請求時,請確保以mm / dd / yyyy格式發送日期。

看來,即使英國日期格式dd / mm / yyyy在IE中也可以使用,但在通過WebClient和原始問題中的代碼發出請求時卻無法使用。

在我的情況下,相反的說法似乎是正確的,如果將日期粘貼到IE中,則以美國格式mm / dd / yyyy提供日期時將引發錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM