2

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 ブラウザーに貼り付けるときに、UK 形式で提供しても問題なく機能するため、これはまだ奇妙な考えです。

上記の WebClient コードを使用して英国の日付を指定すると、エラーが発生します。どちらの方法を使用しても異なる理由はわかりませんが、私にとってはもはや問題ではありませんが、なぜそうなのかを知りたいと思います...

4

1 に答える 1

2

WebClient 経由でリクエストを送信するときは、日付が mm/dd/yyyy の形式で送信されていることを確認してください。

英国の日付形式 dd/mm/yyyy が IE で機能する場合でも、WebClient と元の質問のコードを介してリクエストを行う場合は機能しないようです。

私の場合、URL を IE に貼り付けると、日付が mm/dd/yyyy の米国形式で提供されるとエラーがスローされます。

于 2013-01-16T11:49:52.103 に答える