2012-07-06 25 views
5

MVC3アプリケーションの通常のASP.NET aspxページでCrystal Reportsビューアを使用しています。コントローラのアクションでは、私はaspxページにリダイレクトするだけで、レポートは正常に表示されます。しかし、問題は動的画像にあります。私は、これとイメージパスをレポートパラメータとして渡し、このパラメータをイメージソースとして設定するための最も簡単な解決策を見つけました。 Visual Studioのプレビューでは正常に動作しますが、実行するとこのエラーがページに表示されます。CrystalImageHandler.aspxが見つかりません

"NetworkError: 404 Not Found - server/ReportWebForms/CrystalImageHandler.aspx?dynamicimage=cr_tmp_image_4fbcb73a-e001-4365-84fc-164788dd1605.png"

これまでのCrystalレポートの経験がなく、CrystalImageHandler.aspxに問題があると仮定します。 私はWeb.configファイルにこれらのエントリを持っている:

<httpHandlers><add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/></httpHandlers></system.web> 
    <handlers><add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode"/></handlers></system.webServer> 

は、これは問題のMVC型のですか?誰か助けてくれますか?

は、私は同じ問題を抱えていたが、幸い私は、Crystal Reportsといくつかの経験を持っているあなたに

+0

aspxページを表示するCrystalレポートが含まれているディレクトリ名です。あまりにも多くの問題があり、VS 2010を頻繁にクラッシュさせてしまった。アプリケーションのページにレポートを表示するhtmlページを作成し、iTextSharpライブラリを使用して、ダウンロードするPDFを作成することができます。この方法で、私はBlackBox Crystal Reportsとは違って、レポート作成プロセスのすべての行をコントロールできます。これは私が行ったのと同じポジションにいるときに何が起こるかを誰かが判断するのに役立ちます。 – elector

+1

[Crystal ReportsイメージがASP.NET MVCに読み込まれない]の可能な複製(http://stackoverflow.com/questions/2925465/crystal-reports-images-not-loading-in-asp-net-mvc) – rene

答えて

9

に感謝します。

"path"属性がサイトルートに設定されているため、Web.configを変更するだけで済みます。 ブラウザでURLを開き、ReportWebFormsを削除しても問題ありません。私が持っている私の場合は

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}"); 
// Here is added new ignore rule 
routes.IgnoreRoute("Reports/{resource}.aspx/{*pathInfo}"); 

:あなたはMVCアプリケーションのルートを支配無視追加する必要が

<system.web> 
    <httpHandlers> 
     <add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" /> 
     <!-- Added --> 
     <add verb="GET" path="Reports/CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" /> 
     <add verb="GET,HEAD" path="asset.axd" validate="false" type="Telerik.Web.Mvc.WebAssetHttpHandler, Telerik.Web.Mvc" /> 
    </httpHandlers> 
</system.web> 

<system.webServer> 
    <handlers> 
     <add name="MiniProfiler" path="mini-profiler-resources/*" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified" preCondition="integratedMode" /> 
     <add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode" /> 
     <!-- Added --> 
     <add name="CrystalImageHandler.aspx_GETR" verb="GET" path="Reports/CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode" /> 
     <remove name="asset" /> 
     <add name="asset" preCondition="integratedMode" verb="GET,HEAD" path="asset.axd" type="Telerik.Web.Mvc.WebAssetHttpHandler, Telerik.Web.Mvc" /> 
    </handlers> 
</system.webServer> 

そして最後に:

は、実際に私はちょうどコンフィギュレーションの2つの以上の行を追加しましたという名前のフォルダレポート.aspxファイルが置かれています。あなたのケースではReportWebFormsに変更する必要があります。私はMVCのrouting.Toが@Hovhannes solution.Youに追加無視しなければならなかったRouteconfig.csに

routes.IgnoreRoute("{*allaspx}", new { allaspx = @".*(CrystalImageHandler).*" }); 
+0

私が質問のコメントで言ったように、Crystalレポートでは、それは他の人を助けるかもしれないとして私は答えとしてこれを受け入れるだろう。 – elector

+0

この簡単な問題のトラブルシューティングは常に困難です!私の場合は、フォルダ名を持つ別のignoreRouteを追加するだけで、この問題を解決できました。 – reckface

5

: はRouteConfig.csファイルでこれを追加します

routes.IgnoreRoute( "Reports/{resource} .aspx/{* pathInfo}");

注:「レポートは、」私は私の解決策のためにCrystalレポートをあきらめたenter image description here

+0

今日まで、受け入れられた回答はすべての以前の展開で機能していました。何らかの理由で、CrystalImageHangdler.aspxを現在のURL(http://test.server/report.aspxCrystalImageHAndler.aspx)に追加していたため、画像が表示されませんでした。しかし、この無視を追加することは、周囲の唯一の方法でした。 – reckface

1

回答このルールを追加する必要があります私の場合は