共用方式為


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

將 新增 *.* 至授權延伸模組清單。 若要這樣做,請遵循下列步驟:

  1. 啟動 SQL Server Management Studio,然後連線到 Operations Manager 使用的報表伺服器實例。
  2. 以滑鼠右鍵按兩下報表伺服器實例名稱,選取 [屬性],然後選取[ 進階]。
  3. 找出 AllowedResourceExtensionsForUpload 設定、新增*.*至延伸模塊清單,然後選取 [確定]。
  4. 重新啟動 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 變數至您的報表服務。 腳本中的延伸模組清單可能不完整。 視需要包含您自己的擴充功能。