Wdrażanie raportów programu Operations Manager nie powiodło się

Ten artykuł pomaga rozwiązać problem polegający na tym, że wdrażanie raportów programu Operations Manager kończy się niepowodzeniem z identyfikatorem zdarzenia 31567.

Dotyczy: System Center Operations Manager
Oryginalny numer KB: 4519161

Symptomy

Podczas instalowania programu System Center 2019 Operations Manager wraz z najnowszą wersją usług SQL Server Reporting Services (SSRS) 2017 raporty programu Operations Manager nie są wdrażane.

Po otwarciu widoku Raportowanie w konsoli Operacje i wybraniu dowolnego z folderów lista raportów jest pusta. Ponadto komunikaty o błędach podobne do następujących są rejestrowane w dzienniku zdarzeń programu Operations Manager:

Nazwa dziennika: Operations Manager
Źródło: moduły usługi kondycji
Data: <data i><godzina>
Identyfikator zdarzenia: 31567
Kategoria zadania: Magazyn danych
Poziom: Błąd
Słowa kluczowe: Klasyczne
Użytkownik: Nie dotyczy
Komputer: <nazwa FQDN>
Opis rozwiązania:
Nie można wdrożyć składnika raportowania na serwerze usług SQL Server Reporting Services. Zostanie podjęta ponowna próba wykonania operacji. Wyjątek "DeploymentException": Nie można wdrożyć raportów dla pakietu administracyjnego o identyfikatorze zależnym od wersji "<ID>". System.Web.Services.Protocols.SoapException: przekazywanie lub zapisywanie plików za pomocą polecenia . Rozszerzenie CustomConfiguration jest niedozwolone. Jeśli masz jakiekolwiek pytania, skontaktuj się z administratorem. --->
Microsoft.ReportingServices.Diagnostics.Utilities.ResourceFileFormatNotAllowedException: przekazywanie lub zapisywanie plików za pomocą polecenia . Rozszerzenie CustomConfiguration jest niedozwolone. Jeśli masz jakiekolwiek pytania, skontaktuj się z administratorem.
At Microsoft.ReportingServices.Library.ReportingService2005Impl.CreateResource(Resource, String Parent, Boolean Overwrite, Byte[] Contents, String MimeType, Property[] Properties, Guid batchId)
at Microsoft.ReportingServices.WebServer.ReportingService2005.CreateResource(Resource String, String Parent, Boolean Overwrite, Byte[] Contents, String MimeType, Property[] Properties)
Ten problem dotyczył co najmniej jednego przepływu pracy.
Nazwa przepływu pracy: Microsoft.SystemCenter.DataWarehouse.Deployment.Report
Nazwa wystąpienia: Usługa synchronizacji magazynu danych
Identyfikator wystąpienia: {GUID}
Grupa zarządzania: <Nazwa grupy zarządzania>

Uwaga

Ten problem występuje również w programie System Center Operations Manager w wersji 1807 podczas uaktualniania do programu SSRS 2017, a następnie usuwasz i ponownie instalujesz raportowanie programu Operations Manager.

Przyczyna

Usługi SSRS 2017 w wersji 14.0.600.1274 i nowszych zawierają nowe zaawansowane ustawienie AllowedResourceExtensionsForUpload. To ustawienie ogranicza zestaw rozszerzeń plików zasobów, które można przekazać do serwera raportów. Ten problem występuje, ponieważ raportowanie programu Operations Manager używa rozszerzeń, które nie są uwzględnione w zestawie domyślnym w AllowedResourceExtensionsForUpload.

Rozwiązanie 1

Dodaj *.* do listy autoryzowanych rozszerzeń. W tym celu wykonaj następujące kroki:

  1. Uruchom program SQL Server Management Studio, a następnie połącz się z wystąpieniem serwera raportów używanym przez program Operations Manager.
  2. Kliknij prawym przyciskiem myszy nazwę wystąpienia serwera raportów, wybierz pozycję Właściwości, a następnie wybierz pozycję Zaawansowane.
  3. Znajdź ustawienie AllowedResourceExtensionsForUpload, dodaj *.* je do listy rozszerzeń, a następnie wybierz przycisk OK.
  4. Uruchom ponownie usługę SSRS.

Rozwiązanie 2

Użyj skryptu programu PowerShell, aby dodać rozszerzenia. W tym celu uruchom następujący skrypt programu PowerShell:

Uwaga

Po uruchomieniu tego skryptu należy ponownie uruchomić usługę 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!'

Uwaga

Może być konieczne zaktualizowanie zmiennej $ServiceAddress przy użyciu prawidłowego adresu internetowego w usłudze raportów. Lista rozszerzeń w skrypcie może nie być wyczerpująca. Uwzględnij własne rozszerzenia odpowiednio.