開發環境 :VS2008 ,Crystal Report 2008
開發的網站沒有使用系統預設的wwwroot目錄,而是另建了一個目錄 D:\published 做為網站的目錄。
用Crystal Report2008在VS2008中開發報表,顯示 正常,但當發布到網站上時水晶報表頁沒有圖片,顯示如,但是工作正常。
於是找原因,分析網頁源碼,找到代碼如下:
<table cellspacing=0 cellpadding=0><tr nowrap>
<td nowrap width=8> </td><td nowrap width=22px><input type="image" name="CrystalReportViewer1$ctl02$ctl00" disabled="disabled" title="Export" src="/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/export.gif" onmouseover="this.src='/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/export_over.gif'" onmouseout="this.src='/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/export.gif'" style="height:22px;width:22px;border-width:0px;" /></td>
<td nowrap width=8> </td><td nowrap width=22px><input type="image" name="CrystalReportViewer1$ctl02$ctl01" disabled="disabled" title="Print" src="/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/print.gif" onmouseover="this.src='/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/print_over.gif'" onmouseout="this.src='/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/print.gif'" style="height:22px;width:22px;border-width:0px;" /></td>
<td nowrap width=8> </td><td nowrap width=22px><input type="image" name="CrystalReportViewer1$ctl02$ctl03" disabled="disabled" title="Show/Hide Group Tree" src="/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/grouptree.gif" onmouseover="this.src='/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/grouptree_over.gif'" onmouseout="this.src='/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/grouptree.gif'" style="height:22px;width:22px;border-width:0px;" /></td>
根據源碼,估計是因為網站沒有找到圖片資源所致,於是回到網站發布 目錄,發現目錄下的確並沒有"/aspnet_client/system_web/2_0_50727/CrystalReportWebFormViewer4/images/toolbar/export.gif”等等資源
網上有一說:IIS下沒有此類資源的原因是: 沒有安裝 Crystal Report Web Service,或者沒有在IIS中註冊。
針對此類情況,通常的解決辦法 是:
代碼
安裝 Crystal Report Web Service:通過VS.NET安裝,自動註冊。
註冊:首先進入MSDOS方式(可通過“開始”-“運行...”,鍵入cmd,斷行符號)。
將 C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705 作為目前的目錄,其中 C:\WINDOWS 根據作業系統的安裝位置決定,v1.0.3705 根據安裝的 .NET FRAMEWORK 的版本決定。
鍵入 aspnet_regiis -i。
最後,在 IIS 中會出現一個 CrystalReportWebFormViewer Web 共用目錄。
針對我的情況,聯想到我沒有使用IIS預設的網站,而我的發布目錄中沒有此檔案夾,於是先到C:\inetpub\wwwroot中找,結果找到C:\inetpub\wwwroot\aspnet_client\system_web\2_0_50727\CrystalReportWebFormViewer4
正是我想要的,直接 拷到我的VS2008開發項目中,
重新編譯、發布,於是在我 的發布 目錄中出現了缺失的目錄資源。重新運行網站,出現了相關圖片