Announcement

Collapse
No announcement yet.

explizite Synchronisierung ist in external_access-Assemblys

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • explizite Synchronisierung ist in external_access-Assemblys

    Hi All,

    ich hab mir eine .Net-Klasse geschrieben, die einen Report vom SSRS2005 in ein PDF rendert. Der ReportServer wird per SOAP angesprochen.
    Diese Klasse möchte ich nun als Assembly im SQL Server integrieren, um sie per T-SQL aufzurufen. Leider erhalte ich dabei folgende Fehlermeldung:

    Fehler bei CREATE ASSEMBLY,
    weil die "add_ListSecureMethodsCompleted"-Methode im "MyClass.MyReportServer.ReportExecutionService "-Typ
    in der external_access-Assembly "MyAssembly" ein synchronisiertes Attribut aufweist.
    Die explizite Synchronisierung ist in external_access-Assemblys unzulässig.
    Der Abschnitt in der Klasse sieht wie folgt aus:
    Code:
    Dim rs As New MyReportServer.ReportExecutionService
    Dim execInfo As New MyReportServer.ExecutionInfo
    rs.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials
    
    Dim parameters(0) As MyReportServer.ParameterValue
    parameters(0) = New MyReportServer.ParameterValue()
    parameters(0).Name = "ID"
    parameters(0).Value = lng_ID
    
    execInfo = rs.LoadReport("/MyReport", Nothing)
    
    rs.SetExecutionParameters(parameters, "de-de")
    rs.RenderAsync("PDF", "")
    
    Dim results() As [Byte]
    results = rs.Render("PDF", "", "", "", "", Nothing, Nothing)
    
    Dim stream As System.IO.FileStream = System.IO.File.OpenWrite(str_Dateiname + ".pdf")
    stream.Write(results, 0, results.Length)
    stream.Close()

    Hat da jemend eine Idee - evtl 'asynchrones rendering'?

  • #2
    Hallo as2000,

    hast Du Dir die schon durch gelesen:
    Unterstützte .NET Framework-Bibliotheken
    Beschränkungen des Programmiermodells für die CLR-Integration
    Wenn nicht, fang zunächst damit an.
    Vereinfacht gesagt, Du darfst in ein Assembly herzlich wenig nutzen & machen.
    Auf externe Resourcen zugreifen ist jedenfalls immer kritisch.

    Und was "MyReportServer" alles so macht kann ich schlecht beurteilen; den Code kenne ich nicht.
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      OK, Danke.
      Ich habs jetzt anders gelöst. Und zwar über ein rss-Script, das ich direkt über xp_cmdshell in einer StoredProc aufrufe.

      ciao Andi

      Comment

      Working...
      X