2011-07-15 9 views
0

SSRSとレポートビューアに問題があります。私たちは、レポートを表示するために、単純なaspxページを使用している:私たちは、単にレポートを示し、ここでは狂気何もしていないSQL Server Reporting Services:サーバー上ではなく、レポートビューアがローカルで動作します

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportView.aspx.cs" Inherits="Estam.Web.ReportView" %> 

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
    Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body style="margin: 0"> 
    <form id="form1" runat="server"> 
    <rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" 
     ProcessingMode="Remote" Width="100%" SizeToReportContent="true" ZoomPercent="100" 
     ShowCredentialPrompts="False" ShowParameterPrompts="False" AsyncRendering="False"> 
     <ServerReport /> 
    </rsweb:ReportViewer> 
    </form> 
</body> 
</html> 

    using System; 
using System.Configuration; 
using System.Linq; 
using System.Net; 
using System.Security.Principal; 
using System.Web.UI; 
using Microsoft.Reporting.WebForms; 

namespace Estam.Web 
{ 
    public partial class ReportView : Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      if(IsPostBack) return; 
      ReportViewer1.ServerReport.ReportServerCredentials = new EstamReportServerCredentials(); 
      ReportViewer1.ServerReport.ReportServerUrl = new Uri(ConfigurationManager.AppSettings["ReportServerUrl"]); 
      ReportViewer1.ServerReport.ReportPath = "/tierviewnet/Reports/" + Request.QueryString["report_name"]; 
      ReportViewer1.ShowParameterPrompts = true; 
      ReportViewer1.ServerReport.SetParameters(
       Request.QueryString.AllKeys 
        .Where(key => key != "report_name") 
        .Select(key => new ReportParameter(key, Request.QueryString[key]) {Visible = false}) 
       ); 
     } 

     private class EstamReportServerCredentials : IReportServerCredentials 
     { 
      public bool GetFormsCredentials(out Cookie authCookie, out string userName, out string password, out string authority) 
      { 
       authCookie = null; 
       userName = null; 
       password = null; 
       authority = null; 

       return false; 
      } 

      public WindowsIdentity ImpersonationUser 
      { 
       get { return null; } 
      } 

      public ICredentials NetworkCredentials 
      { 
       get 
       { 
        return new NetworkCredential(
         ConfigurationManager.AppSettings["ReportServerUser"], 
         ConfigurationManager.AppSettings["ReportServerPassword"], 
         ConfigurationManager.AppSettings["ReportServerDomain"]); 
       } 
      } 
     } 
    } 
} 

。デバッガでアプリケーションをローカルで実行すると、正常に動作します。アプリケーションがIISに展開されると、レポートが表示されますが、ツールバーには画像が表示されず、エクスポート機能は動作しません。

これについてのお手伝いがあれば幸いです。

答えて

0

おそらく、Visual Studio開発WebサーバーとIISの違い、つまりIISがweb.configを処理する方法が異なるためです。

完全な解決方法はpostをご確認ください。