0

私の目標は、aspx として、または一般的なハンドラーを使用して、Web ページに表示する PDF を生成することです。(これは Silverlight ページからリンクしますが、これは問題とは無関係です。)

問題は、LocalReport (Microsoft.Reporting.WebForms; Microsoft.ReportViewer.WebForms.dll) には完全な信頼が必要であり、ホスティング サーバーが完全な信頼を許可していないことです。ReportViewer には、部分的な信頼で実行できるリモート モードがあることを認識していますが、そのためには、おそらく完全な信頼も必要なレポート サーバーの URL が必要であり、何も解決しません。

では、部分的に信頼された環境で WebForms (RDLC レポート) から PDF を生成するにはどうすればよいでしょうか?

編集: VS 2008 で C# 3.5 を使用しています。

4

3 に答える 3

1

最初にシステムにインストールされている PDF 作成ライブラリをホスティング会社に確認し、それを使用する必要があります。

私は中程度の信頼で自分自身をテストしていませんが、このオープン ソース プロジェクトで中程度の信頼で成功した人もいます: http://sourceforge.net/projects/itextsharp/

乾杯、ステファン

アップデート

private LocalReport CreateReport()
{
    LocalReport myReport = new LocalReport();
    myReport.ReportPath = "Report1.rdlc";

    // Insert parameters if needed
    ReportParameter myParam = new ReportParameter("MyParamName", "myParamValueAsString");

    myReport.SetParameters(new ReportParameter[] { myParam });

    return myReport;
}
You can call the function to create the PDF:



//Create new pdf file
Byte[] mybytes = CreateReport().Render("PDF", Nothing, mimeType, encoding, extension, streamids, warnings);

そして、mybytes は Response for download で書き出すことができます..

于 2010-12-30T10:50:23.290 に答える
0

問題を解決するための回答がこれ以上得られない限り、これが最善の回避策です。

ホスティング サーバーに連絡したところ、Microsoft.ReportViewer (おそらく完全な信頼を実行している) へのアクセスを許可する別のサーバーがありますが、追加料金がかかります。

于 2011-01-04T06:58:45.300 に答える
0

サーバーで .NET 4 を使用していますか、それとも以前のバージョンですか? 私は (MSDN のこのヘルプ ページに基づいて: http://msdn.microsoft.com/en-us/library/microsoft.reporting.webforms.localreport.executereportinsandboxappdomain.aspxに基づいて) ReportViewer コントロールは常にサンドボックス化されたアプリケーション ドメインで実行されると考えています。 . ただし、以前のバージョンの場合 (または LegacySecurityPolicy を使用している場合) は、LocalReport オブジェクトで ExecuteReportInSandboxAppDomain メソッドを呼び出して、レポート ビューアーがそうする必要があることを明示的に指定する必要があります。よくわかりませんが、これで問題が解決するかもしれません。

于 2011-01-03T06:26:47.683 に答える