多くのリンクを通過しましたが、今は私を助けてくれる人が必要です。私はホスティングの経験もSSRSの経験もありません。asp.netアプリケーションでローカルにSSRSを使用する方法
いくつかのサイトに続いて、私は既存のAsp.net MVCアプリケーションのVisual StudioからBusiness Intelligence - > "Reporting project"を追加しました。それで私は正常にプレビューできる2つのrdlレポートを作成しました。今質問はasp.netアプリケーションでそれらを消費することです?私がやった
手順です:
1)IISを開設し、「私の SSRSプロジェクトのパス」に物理ディレクトリを使用して新しいウェブサイトを作成しました。 IISからこのWebサイトを検索すると、その場所が表示されます。
2)今すぐasp.netコードにアクセスしてください。私はすでにレポートを表示するために必要な基本コードを追加しましたが、問題は "パス"です。 「ローカルサーバーパス」または「リモート」を定義する必要がありますか。両方の違いは何ですか?彼らはそのrdlファイルの物理的な場所を必要としますか?物理的な場所が必要な場合は、rdlファイルが別のプロジェクトにあり、メインのwebappに存在しないため、どうすれば入手できますか?私はこれと混同しています。私のアプリケーションのパスを与えようとするとエラーが発生することがあります。下のコードではこのエラーを表示しています。リモート名を解決できませんでした
: 'reportserverの' ここ
は、プロジェクト構造である:
これは私がコントローラに持っているものである
ReportViewer reportViewer = new ReportViewer
{
ProcessingMode = ProcessingMode.Remote
};
//reportViewer.LocalReport.ReportPath =
// Request.MapPath(Request.ApplicationPath) +
// "~/Reports/Report3.rdl";
//reportViewer.LocalReport.ReportPath = Path.GetFullPath("~/ReportingProject/Reports/Report3.rdl");
//reportViewer.LocalReport.ReportPath = Path.Combine("~/ReportingProject/Reports/Report3.rdl");
reportViewer.ServerReport.ReportServerUrl = new Uri("http://ReportServer/Reports/report3.rdl");
//string solutiondir = Directory.GetParent(
// Directory.GetCurrentDirectory()).Parent.FullName;
//// may need to go one directory higher for solution directory
//return XDocument.Load(solutiondir + "\\" + ProjectBName + "\\Mock\\myDoc.html")
reportViewer.Width = Unit.Percentage(100);
reportViewer.LocalReport.DataSources.Add(new
ReportDataSource("DataSet1", objList));
reportViewer.LocalReport.Refresh();
ViewBag.ReportViewer = reportViewer;
'Reports URL'ではなく' ReportServer URL'を使う必要があります。 'http:// servername/ReportServer/report3.rdl' Reports Managerにrdl拡張子がない場合は、URL文字列にrdl拡張子は必要ありません。 –
これを実行しても機能しません。 reportViewer.ServerReport.ReportServerUrl = new Uri( "http://localhost/reportserver/report3.rdl"); レポートサーバーへの接続に失敗しました。接続情報を確認し、レポートサーバーが互換性のあるバージョンであることを確認します。 クライアントが '' 'のコンテンツタイプを検出しましたが、' text/xml 'が必要です。リクエストが空の応答で失敗しました。 – Sandy