簡體   English   中英

SQL Server Reporting Services - 運行報表時出錯(Azure網站部署問題?)

[英]SQL Server Reporting Services - error running a report (Azure web site deployment issue?)

我有一個ASP.NET MVC前端,它列出了SQL Azure Reporting Services上的報告。 用戶選擇要運行的報告,並在另一個瀏覽器窗口中加載該報告。 問題是,當報告在某些瀏覽器上運行時(例如,Win7上的IE10),顯示的所有內容都是以下消息:

Method not found: 'Boolean Microsoft.ReportingServices.Common.DateTimeUtil.TryParseDateTime(System.String, System.IFormatProvider, System.DateTimeOffset ByRef, Boolean ByRef)'.

在Win7上使用Chrome報告“半工作” - 我在頂部欄中顯示日期時間框和另一個下拉菜單,當我單擊“運行”按鈕時,我會獲得報告導航欄但不會顯示報告正文。 我沒有收到上面的消息。

該網站發布到Azure網站。 我引用了以下DLL並將CopyLocal設置為true:

Microsoft.ReportViewer.Common
Microsoft.ReportViewer.WebForms
Microsoft.ReportViewer.DataVisualization
Microsoft.ReportViewer.ProcessingObjectModel

發布的報告在我的dev機器上工作正常,我安裝了ReportViewer 2012可再發行組件(控件的版本11)。

所以,問題:

我在發布的網站上遺漏了哪些其他可再發行的dll? 什么是Microsoft.ReportingServices.Common? 'ByRef'似乎意味着這是VB - 這是一個客戶端腳本組件嗎? 我是否需要在客戶端計算機上安裝以查看報告?

同樣的問題發生在部署發生后在IE和Firefox上找不到錯誤的方法,而在本地運行一切正常。

 Method not found: 'Boolean Microsoft.ReportingServices.Common.DateTimeUtil.TryParseDateTime(System.String, System.IFormatProvider, System.DateTimeOffset ByRef, Boolean ByRef)'.

發生的事情是,在我們的本地bin文件中,有一個比部署服務器更新版本的Microsoft.ReportViewer dll。 當部署服務器添加了dll時,它從GAC中選擇的版本與在本地使用的版本不同。 版本11.0.2而不是11.0.33導致未命中匹配。 將dll更新到本地計算機上的相同版本后,它修復了問題。 有可能在您重新部署正確的dll后使用,修復您的問題。

要驗證bin文件夾和部署文件夾中dll的版本,可以在導航到包含dll的文件夾后使用簡單的power shell腳本。

dir *.dll | %{ $_.VersionInfo }

crackhaus的回答指出了我正確的方向。

以下是我遵循的完整步驟:

  1. 使用以下PowerShell命令檢查bin文件夾中程序集的版本號:

     dir *.dll | %{ $_.VersionInfo } 
  2. 發現其中一個ReportViewer程序集與其他兩個程序集具有不同的版本號。

  3. 我在本地GAC中檢查了該DLL的版本號,發現GAC DLL與我的bin文件夾中的其他兩個DLL匹配。

    我使用此處描述的選項2來訪問GAC(基本上:PowerShell到c:\\ WINDOWS \\ assembly \\ GAC_MSIL \\ <程序集名稱> \\ <程序集主要版本>),以及上面的命令來檢查版本號。

  4. 使用PowerShell( copy-item命令),我解壓縮了DLL,並將其放入站點的BIN文件夾中。

轉到Nuget並安裝,從那里獲得Micorsoft.ReportViewer運行時2012和ReportViewer.Common 10.0

這解決了我的問題,雖然我不得不承認我不知道為什么......

只需將SizeToReportContent =“true”屬性添加到aspx頁面中的標記,例如:

<rsweb:ReportViewer ID="ReportViewer1" runat="server" SizeToReportContent="true" Font-Names="Verdana" Font-Size="8pt" Height="100%" ProcessingMode="Remote" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Width="100%">
    <ServerReport />
</rsweb:ReportViewer>

可悲的是,一切似乎都在起作用。

我們遇到了同樣的問題。 我想添加你需要將所有4個dll復制到服務器:

Microsoft.ReportViewer.Common.dll
Microsoft.ReportViewer.WebForms.dll
Microsoft.ReportViewer.DataVisualization.dll
Microsoft.ReportViewer.ProcessingObjectModel.dll

我們遇到了同樣的問題。 我們使用了可再發行的dll: http//www.microsoft.com/en-us/download/confirmation.aspx?id = 35747

我決定根據MSDN文章Microsoft SQL Server 2012Microsoft Report Viewer 2012 Runtime的 Microsoft System CLR類型安裝到服務器。 之后,我從站點bin目錄中刪除了錯誤的程序集。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM