0

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

clip_image001

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

clip_image002

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

IIS6

<system.web>..

IIS7

<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


转自:http://www.dotblogs.com.tw/kim/archive/2010/11/16/reportvieweriis7.aspx?fid=21512



---------------------------------------------

問題是這樣的,Visual Studio 2008在你拖入ReportViewer時會自動在web.config的system.web中加入HttpHandler Mapping: 但問題來了,在IIS7上ASP.NET有兩種執行模式,Classic Mode及Integrated Mode,web.config裡HttpHandler等設定也變成有兩區,system.web是給Classic Mode用的,system.webServer是給Integrated Mode用的。 VS2008自動加入HttpHandler設定只改了system.web區(大概是因為IIS7比VS2008晚發展),卻沒一併在system.webServer區新增設定,而我的WebApp設定是用Integrated Mode執行,這下子等於沒註冊Reserved.ReportViewerWebControl.axd,自然以HTTP 404收場。 前述文章中開啟IIS管理UI加入HttpHandler Mapping的動作,背後便是在system.webServer加入以下的HttpHandler設定: 真相大白了,收隊!

原本在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就可以正常顯示了


转自:http://hi.baidu.com/rwecho/item/1edea4b13beacd91194697b4

关闭 返回顶部
联系我们
Copyright © 2011. 聚财吧. All rights reserved.