2012年5月14日 星期一

Reporting Sevice 2005 無法在 IIS7 正常顯示 - IIS7 , reporting service 2005

最近遇到 Windows 2008 上要把之前開發在 Windows 2003 上的專案放上去。

一般網頁處理都能夠順利地轉移,但在有使用到 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.打開網頁伺服器管理介面。
2.點選網站,通常預設為 Default Web Site,並點選處理常式對應。
3.然後點選[新增Managed處理常式...]
4.開啟 新增 Managed 處理常式,依序填寫相關連結字串
要求路徑:

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

沒有留言:

張貼留言