ReportViewer在IIS7 無法顯示問題解決

這陣子內部有些網站要移到Win2008上,移植完後遇到ReportViewer無法顯示的問題,如下一片空白:
clip_image001

使用知名的網路監控軟体Fiddler2偵測後,發現ReportViewer的handler出現404Not Found Error

clip_image002

此時想到IIS6 與IIS7在Module及handler的區段是在不同的位置內

IIS6
<system.web>..
I
IS7
<system.webserver>..

解決方法:

A.將原本<system.web>內的ReportViewerHandler搬過來,並加上name
ps:iis7的handler需給name,如下:

<add name="ReportViewer" path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" resourceType="Unspecified" preCondition="integratedMode" />

B.上述的handler若你在system.web找不到相關設定也可以在IIS上設定

a.在你的站台上找到[處理常式對應]

clip_image003

b.新增ReportViewer的處理常式

clip_image004

c.新增後會自動寫入你的站台的組態設定,這樣就大功告成囉

clip_image005

這個網誌中的熱門文章

[.NET Core] 將專案發行至IIS

[TFS] 分支與合併