[英]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瀏覽器中打開鏈接時,它工作正常,這使我很困惑,並且僅在具有參數的報表中才會出現此問題。
我剛剛意識到問題出在哪里,那是日期的格式。 我輸入的是英國格式的日期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.