Puncte:0

Servicii de raportare 2016: nu se poate edita sau încărca RDL (aruncă excepție și descărcare de memorie)

drapel jp
Vjz

Am o instanță nativă standard SQL Reporting Services 2016 (13.0.5103.6) care nu mă lasă să editez rapoarte (RDL) cu Report Builder 15.0.19611.0 sau să le încarc prin portalul Rapoarte, aceasta lansează o excepție și creează un dump de memorie. Încă mai pot executa/genera rapoarte în instanță.

Când deschid raportul în Generatorul de rapoarte, primesc eroarea la nivelul clientului:

A apărut o eroare neașteptată în Procesarea raportului. --->
Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: a apărut o eroare neașteptată în procesarea raportului. --->
System.Exception: pentru mai multe informații despre această eroare, navigați la serverul de rapoarte de pe computerul serverului local sau activați erorile de la distanță

Pe serverul Reporting Services Log, intrarea corespunzătoare din jurnalul de erori este:

procesare!ReportServer_0-1!1ac8!12/23/2021-14:11:29:: e EROARE: Se aruncă Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: , Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: a apărut o eroare neexceptie de procesare a raportului. ---> System.ComponentModel.Win32Exception: Sistemul nu poate găsi calea specificată
   la Microsoft.Win32.NativeMethods.CreateDirectory (calea șirului, SafeLocalMemHandle acl)
   la System.CodeDom.Compiler.TempFileCollection.CreateTempDirectoryWithAce (director String, identitate String)
   la System.CodeDom.Compiler.TempFileCollection.GetTempFileName(String tempDir)
   la System.CodeDom.Compiler.TempFileCollection.EnsureTempNameCreated()
   la System.CodeDom.Compiler.TempFileCollection.AddExtension(String fileExtension, Boolean keepFile)
   la System.CodeDom.Compiler.CodeCompiler.FromDomBatch (opțiuni CompilerParameters, CodeCompileUnit[] ea)
   la System.CodeDom.Compiler.CodeCompiler.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromDomBatch(Opțiuni CompilerParameters, CodeCompileUnit[] ea)
   la Microsoft.ReportingServices.RdlExpressions.VBExpressionCodeProvider.CompileAssemblyFromDomWithRetry(Opțiuni CompilerParameters, CodeCompileUnit compilationUnit)
   la Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.InternalCompile(AppDomain compilationTempAppDomain, Boolean refusePermissions)
   la Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.<>c__DisplayClass2.<Compile>b__0()
   la Microsoft.ReportingServices.Diagnostics.RevertImpersonationContext.<>c__DisplayClass1.<Run>b__0(Starea obiectului)
   la System.Security.SecurityContext.runTryCode(Object userData)
   la System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup (cod TryCode, CleanupCode backoutCode, Object userData)
   la System.Security.SecurityContext.Run (SecurityContext securityContext, ContextCallback callback, Stare obiect)
   la Microsoft.ReportingServices.Diagnostics.RevertImpersonationContext.Run (reapelare ContextBody)
   la Microsoft.ReportingServices.RdlExpressions.ExprHostCompiler.Compile(IExpressionHostAssemblyHolder expressionHostAssemblyHolder, AppDomain compilationTempAppDomain, Boolean refusePermissions, PublishingVersioning versioning)
   la Microsoft.ReportingServices.ReportPublishing.ReportPublishing.Phase3(ParameterInfoCollection& parametri, Dictionary`2& groupingExprCountAtScope)
   at Microsoft.ReportingServices.ReportPublishing.ReportPublishing.InternalCreateIntermediateFormat(Stream definitionStream, String& description, String& language, ParameterInfoCollection& parameters, DataSourceInfoCollection& dataSources, DataSetInfoCollection& sharedDataSetReferences, UserLocationFlags& userReferenceLocation, ArrayList& dataSetsName, Boolean& hasExternalImages, Boolean& hasHyperlinks, Byte[]& dataSetsHash)
   la Microsoft.ReportingServices.ReportProcessing.ReportProcessing.CompileOdpReport(PublishingContext reportPublishingContext, PublishingErrorContext errorContext, String& reportDescription, String& raport
bibliotecă!ReportServer_0-1!1ac8!12/23/2021-14:11:29:: i INFORMAȚII: S-a omis crearea unui fișier dump pentru eroarea ReportProcessingException, deoarece a fost deja creată un dump cu urmă de stivă identică (cu semnătura 2668486527). .

Presupunând că „svcssrs” este utilizatorul ADU sub care rulează instanța SSRS, folosind Procmon (Sysinternals) împotriva ReportingServicesService.exe, am observat o operațiune CreateFile care eșuează cu PATH NOT FOUND cu căi precum C:\Utilizatori\svcssrs\AppData\Local\Temp\abcdefgh

C:\Utilizatori\svcssrs\AppData\Local\Temp\ există și se află sub controlul deplin al utilizatorului „svcssrs”.

RDL-ul cu care lucrez este un fișier RDL foarte standard cu Tablix, unele seturi de date MSSQL care folosesc o sursă de date partajată, câteva expresii SSRS de bază, imagini încorporate (nelegate) și niciun cod VB încorporat sau ansambluri legate.

Am restaurat cheia de criptare SNK dintr-o copie de rezervă și am schimbat-o, de asemenea, ulterior, fără nicio modificare a comportamentului.

Cum pot rezolva această problemă?

Puncte:0
drapel jp
Vjz

Problema a fost din cauza folderului de profil de utilizator C:\Utilizatori\svcssrs a fost șters din sistemul de fișiere direct, fără a șterge mai întâi profilul de utilizator prin sysdm.cpl. Când structura de director a fost recreată, se suspectează că alte elemente legate de profil (de exemplu: registry hive?) nu au fost create corect.

Problema a fost rezolvată de:

  1. Oprirea serviciului SSRS
  2. Ștergerea profilului de utilizator „corupt” „svcssrs” prin sysdm.cpl
  3. Pornirea serviciului SSRS și lăsarea acestuia să recreeze profilul utilizatorilor
  4. Încărcarea cheii de criptare pentru copii de rezervă (SNK) înapoi în instanța SSRS.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.