C# 当报表具有参数时,使用WebClient访问Reporting Services导出

C# 当报表具有参数时,使用WebClient访问Reporting Services导出,c#,asp.net,reporting-services,webclient,C#,Asp.net,Reporting Services,Webclient,我在尝试使用WebClient从Reporting Services导出报表时遇到了一个问题 如果我使用代码加载一个不包含任何参数的报告,那么一切都会正常工作,一旦我尝试传递参数,就会出现500服务器错误 如果我在web浏览器中点击Reporting Services URL,报告将加载良好,它将接受querystring中指定的参数值,并以Excel格式返回报告 这是我过去做过的事情,我真的很困惑到底是什么问题。下面是我正在使用的一些代码,正如前面所说的,对于没有参数的报表,这可以很好地工作。

我在尝试使用WebClient从Reporting Services导出报表时遇到了一个问题

如果我使用代码加载一个不包含任何参数的报告,那么一切都会正常工作,一旦我尝试传递参数,就会出现500服务器错误

如果我在web浏览器中点击Reporting Services URL,报告将加载良好,它将接受querystring中指定的参数值,并以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和原始问题中的代码发出请求时,它也不起作用


相反,在我的情况下,当将URL粘贴到IE中时,如果日期是以美国格式mm/dd/yyyy提供的,则会抛出一个错误

如果有人知道使此行为一致的方法,请让我知道。我试着在标题中设置一些东西,看看这是否允许我在WebClient调用URL中使用英国日期,但没有找到答案。