一般網頁處理都能夠順利地轉移,但在有使用到 Reportviewer 控制項的網頁皆呈現無法使用的404畫面,表示找不到相關頁面。
經多方搜尋及尋找,大致整理出幾個方向,因 VS 2008 發展比 IIS 7 早,所以很多設定都只針對當時環境 IIS 6 所設計。
- 開發環境為 Visual Studio 2008
- 網站架設環境為 Internet Information Services 7 ( IIS 7 )
- 欲使用 Reportviewer 控制項
所引發問題,因為升級為 IIS 7 之後處理 ASP.NET的模式分為兩種:Classic Mode及Integrated Mode。然而現行網站處理都是直接使用 Integrated Mode 新的有向下相容的版本。而直接對應的 Web.Config 設定也因此除原本的 system.web 外多了 system.webServer。
新版 Visual Studio 2010 當然會支援兩個部份的設定,然而舊版的 Visual Studio 2008 所拖拉 Reportviewer 設定的區塊就只有原本舊版的 system.web。
那針對 system.webServer 的設定這部分怎麼辦? 這就是問題所在,也因始造成找不到的404畫面。
解決方法,可以針對 IIS 7 建立起 HttpHandler Mapping 。
1.打開網頁伺服器管理介面。
Reserved.ReportViewerWebControl.axd
類型:
Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
名稱:
Reserved-ReportViewerWebControl-axd
5.重新啟動 IIS 7 後便可以看到原本看不到 Reportviewer 啦。
【茶包射手專欄】ReportViewer 2008 on IIS7
Solving ReportViewer Rendering Issue on IIS7
沒有留言:
張貼留言