December 14, 2009

ReportViewer控制項無法在頁面顯示的解決方法

小弟手邊有個專案需要用到ReportViewer,部署上正式機後卻無法顯示出ReportViewer控制項,如下圖
正式機的環境是Windows 2008,IIS 7

google了一下發現,原來是IIS 7讀web.config的方式有變,不再讀取<system.web>裡<httpHandlerss>的設定,而改讀<system.webServer>裡的<handlers>的設定

原本在IIS 6中,要在config裡的system.web設定
<system.web>
  <httpHandlers>
    <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
  </httpHandlers>
</system.web>

在IIS 7卻要設定在
<system.webServer>
  <handlers>
    <add name="ReportViewerWebControl" path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </handlers>
</system.webServer>

設定完後,ReportViewer就可以正常顯示了


備註
經亂馬客大的建議得知,只要將應用程式集區的Managed管線模式整合式改為傳統即可解決此問題

No comments: