2016-09-28 13 views
0

ここで説明する問題は、開発マシンのみに影響します。異なるサーバー(テストおよび運用)に展開すると、この現象は発生しません。ページ自体はXtraReportをインスタンス化し、それを割り当てること以外は本当に賢い何もしないリソースが見つかりません - dx:ASPxDocumentViewer - 開発マシンのみ

<%@ Page Title="" Language="C#" MasterPageFile="~/SiteV2.Master" AutoEventWireup="true" CodeBehind="ReportViewer.aspx.cs" Inherits="MyApp.Platform.Reports.ReportViewer" %> 

<%@ Register Assembly="DevExpress.XtraReports.v16.1.Web, Version=16.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.XtraReports.Web" TagPrefix="dx" %> 

<asp:Content ID="cntPageTabs" ContentPlaceHolderID="cphPageTabs" runat="server"> 
    <ul class="nav nav-tabs"> 
     <li class="active"> 
      <a href="#tab-page" data-toggle="tab" aria-expanded="true" class="myapp-ctrl-noprogress">Page</a> 
     </li> 
    </ul> 
    <div class="tab-content tab-content-for-page"> 
     <div class="tab-pane active" id="tab-page"> 
      <asp:Button ID="btnToolbarClose" runat="server" Text="Close" CssClass="btn btn-default" OnClick="btnToolbarClose_OnClick"/> 
     </div> 
    </div> 
</asp:Content> 


<asp:Content ID="Content3" ContentPlaceHolderID="cphMainContent" runat="server"> 
    <dx:ASPxDocumentViewer ID="ReportDocumentViewer" runat="server"></dx:ASPxDocumentViewer> 
</asp:Content> 

次のように

は、私はそれにDevExpress社レポートビューアを含む単純なASPX(ReportViswer.aspx)ページを持っていますレポートビューア:

protected void Page_Load(object aSender, EventArgs aEventArgs) 
{ 
    if (!IsPostBack) 
    { 
     if (Session["ReportParams"] == null) 
     { 
      ShowErrorMessage("No report information was passed."); 
      return; 
     } 
     ReportParametersHelper reportParams = new ReportParametersHelper(); 
     reportParams.Deserialize(Session["ReportParams"].ToString()); 

     XtraReport reportToView = null; 

     switch (reportParams.ReportName) 
     { 
      case ReportNames.REPORT_DISCOVERY_DOCUMENT: 
       reportToView = new ReportDiscoveryDocument(); 

       (reportToView as ReportEmailMessage).Activate(ReportParams.Params); 
       break; 
     } 
    } 
} 

Webフォーム4.6.1ソリューションは、私の開発マシン上のWindows 10上でIIS 10に対して実行され、ときに私は、単純なのResponse.Redirect(〜/レポート/レポートビューアーを経由して試してみて、上記のページを開きます)私のどちらかが、ユーザ名とパスワードの入力を求めます:

enter image description here

または最終的にリソースが見つからないエラー:アプリケーションのように構成されてDefaultAppプールに対して実行されている

enter image description here

enter image description here

だから私の質問は以下のとおりです。

  1. なぜ私の開発マシン上で生産し、ステージングとない上、この作品(つまり、レポートビューアーがいない問題でうまく表示)
  2. は、おそらく事実はIISとの相関がありませんこのページは.NET 2.xのものですか? (スクリーンショットを参照)
  3. これをデバッグする方法に関するアイデアはありますか?私はこのマシンでレポートを作成することはできません。

DevExpressは小さなサンプルプロジェクトを望んでいないので役に立たないし、テストハーネスはこの動作を示さないので、この大規模なプロジェクトでは何かを理解しています。

このように、洞察力やアイデアは高く評価されますので、必要に応じてより多くの診断情報を提供できます。

答えて

0

この問題は、DevExpressコンポーネントではなく開発マシンのルーティング設定によって発生している可能性があります。この場合、WebフォームからASPxDocumentViewerコントロールを削除しても再現できます。

Response.Redirectメソッド "〜/ reports/reportviewer.aspx"に次のルート形式を渡してみてください。これはデフォルトのASP.NET WebFormsルート形式で、 "〜/ reports/reportviewer" IISがWebページではなくフォルダを開くと、承認が要求され、404エラーがスローされます。ルーティングの設定が異なるため、この問題は別のマシンでは再現できません。 ASP.NETでルーティングがどのように機能するかについては、MSDNの記事ASP.NET Routingを参照してください。

+0

上記の提案は、残念なことに違いはありませんでした。 – TheEdge

関連する問題