Operations Manager 報表無法部署
本文可協助您修正部署 Operations Manager 報告失敗且事件標識碼為 31567 的問題。
適用於: System Center Operations Manager
原始 KB 編號: 4519161
徵兆
當您將 System Center 2019 Operations Manager 與最新版的 SQL Server Reporting Services (SSRS) 2017 一起安裝時,Operations Manager 報告不會部署。
當您在 Operations 控制台中開啟 [報表 ] 檢視,然後選取任何資料夾時,報表清單是空的。 此外,類似下列的錯誤訊息會記錄在 Operations Manager 事件記錄檔中:
記錄名稱:Operations Manager
服務:健全狀況服務模組
日期: <日期><時間>
事件標識碼:31567
工作類別:資料倉儲
層級:錯誤
關鍵字:傳統
使用者: N/A
計算機: <FQDN>
描述:
無法將報告元件部署至 SQL Server Reporting Services 伺服器。 將會重試作業。 例外狀況 'DeploymentException':無法為版本相依標識符為 '<ID>' 的管理元件部署報告。 System.Web.Services.Protocols.SoapException: 使用 上傳或儲存盤案。不允許 CustomConfiguration 擴充功能。 如果您有任何問題,請連絡您的系統管理員。 --->
Microsoft.ReportingServices.Diagnostics.Utilities.ResourceFileFormatNotAllowedException:使用 上傳或儲存盤案。不允許 CustomConfiguration 擴充功能。 如果您有任何問題,請連絡您的系統管理員。
at Microsoft.ReportingServices.Library.ReportingService2005Impl.CreateResource(String Resource, String Parent, Boolean Overwrite, Byte[] Contents, String MimeType, Property[] Properties, Guid batchId)
at Microsoft.ReportingServices.WebServer.ReportingService2005.CreateResource(String Resource, String Parent, Boolean Overwrite, Byte[] Contents, String MimeType, Property[] Properties)
一個或多個工作流程受到影響:
工作流程名稱:Microsoft.SystemCenter.DataWarehouse.Deployment.Report
實例名稱:數據倉儲同步處理服務
實例標識符: {GUID}
管理群組: <管理組名>
注意
當您升級至 SSRS 2017,然後移除並重新安裝 Operations Manager 報表時,System Center Operations Manager 1807 版也會發生此問題。
原因
SSRS 2017 14.0.600.1274 版和更新版本包含新的進階設定 AllowedResourceExtensionsForUpload。 此設定會限制可上傳至報告伺服器的資源檔擴充功能集。 發生此問題的原因是 Operations Manager 報告使用的延伸模組未包含在 AllowedResourceExtensionsForUpload 中的預設集。
解決方法 1
將 新增 *.*
至授權延伸模組清單。 若要這樣做,請遵循下列步驟:
- 啟動 SQL Server Management Studio,然後連線到 Operations Manager 使用的報表伺服器實例。
- 以滑鼠右鍵按兩下報表伺服器實例名稱,選取 [屬性],然後選取[ 進階]。
- 找出 AllowedResourceExtensionsForUpload 設定、新增
*.*
至延伸模塊清單,然後選取 [確定]。 - 重新啟動 SSRS。
解決方法 2
使用 PowerShell 腳本新增擴充功能。 若要這麼做,請執行下列 PowerShell 指令碼:
注意
您必須在執行此文稿之後重新啟動 SSRS。
$ServiceAddress = 'http://localhost'
$ExtensionAdd = @(
'*'
'CustomConfiguration'
'Report'
'AvailabilityMonitor'
'TopNApplications'
'Settings'
'License'
'ServiceLevelTrackingSummary'
'CustomPerformance'
'MostCommonEvents'
'PerformanceTop'
'Detail'
'DatabaseSettings'
'ServiceLevelObjectiveDetail'
'PerformanceDetail'
'ConfigurationChange'
'TopNErrorGroupsGrowth'
'AvailabilityTime'
'rpdl'
'mp'
'TopNErrorGroups'
'Downtime'
'TopNApplicationsGrowth'
'DisplayStrings'
'Space'
'Override'
'Performance'
'AlertDetail'
'ManagementPackODR'
'AlertsPerDay'
'EventTemplate'
'ManagementGroup'
'Alert'
'EventAnalysis'
'MostCommonAlerts'
'Availability'
'AlertLoggingLatency'
'PerformanceTopInstance'
'rdl'
'PerformanceBySystem'
'InstallUpdateScript'
'PerformanceByUtilization'
'DropScript'
)
Write-Output 'Setting Allowed Resource Extensions for Upload'
$error.clear()
try
{
$Uri = [System.Uri]"$ServiceAddress/ReportServer/ReportService2010.asmx"
$Proxy = New-WebServiceProxy -Uri $Uri -UseDefaultCredential
$Type = $Proxy.GetType().Namespace + '.Property'
$Property = New-Object -TypeName $Type
$Property.Name = 'AllowedResourceExtensionsForUpload'
$ValueAdd = $ExtensionAdd | ForEach-Object -Process {
"*.$psItem"
}
$Current = $Proxy.GetSystemProperties($Property)
if ($Current)
{
$ValueCurrent = $Current.Value -split ','
$ValueSet = $ValueCurrent + $ValueAdd | Sort-Object -Unique
}
else
{
$ValueSet = $ValueAdd | Sort-Object -Unique
}
$Property.Value = $ValueSet -join ','
$Proxy.SetSystemProperties($Property)
Write-Output ' Successfully set property to: *.*'
}
catch
{
Write-Warning "Failure occurred: $error"
}
Write-Output 'Script completed!'
注意
您可能需要使用有效的 Web 位址來更新 $ServiceAddress
變數至您的報表服務。 腳本中的延伸模組清單可能不完整。 視需要包含您自己的擴充功能。