24 messaggi dal 06 novembre 2014
Ciao a tutti, sto mettendo in produzione un'applicazione asp.net webforms su un server con IIS 8. L'applicazione dovrebbe visualizzare un report rdlc ma da errore durante elaborazione locale del report.
Premesso che:
- Sul server è installato ReportViewer e ReportViewerControlHandler è abilitato
- La stessa applicazione funziona correttamente su Azure
- Nelle proprietà del report "operazioni di compilazione" è impostato su Contenuto e "Copia nella directory di output" è impostato su Non Copiare
- Il report è situato nella directory di root dell'applicazione

Il metodo che crea il report è il seguente
Public Function GeneraPdfCliente(ByVal id As Integer, ByVal filename As String, ByVal dataset As String, ByVal report_name As String)

            Dim warn As Warning() = Nothing
            Dim streamids As String() = Nothing
            Dim mimetype As String = String.Empty
            Dim encoding As String = String.Empty
            Dim extension As String = String.Empty

            Dim viewer As New ReportViewer
            Dim datasourcereport As New ReportDataSource

            viewer.ProcessingMode = ProcessingMode.Local
            datasourcereport.Name = (dataset)
            datasourcereport.Value = BLL.GetDataForClientReport(id)
            viewer.LocalReport.ReportPath = report_name & ".rdlc" 
            viewer.LocalReport.DataSources.Add(datasourcereport)

            Dim bytes As Byte() = Nothing
            Try
                bytes = viewer.LocalReport.Render("WORD", Nothing, mimetype, encoding, extension, streamids, warn)
            Catch ex As Exception
                Throw New ArgumentException(ex.Message, ex)
                Return Nothing
            End Try

            HttpContext.Current.Response.Clear()
            HttpContext.Current.Response.ClearContent()
            HttpContext.Current.Response.ClearHeaders()

            HttpContext.Current.Response.ContentType = "application/ms-word"
            HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" & filename & ".doc")

            HttpContext.Current.Response.BinaryWrite(bytes)

            Return bytes

        End Function



Visto che tutto funziona sull'hosting Azure presumo sia un problema di configurazione di IIS, ma non riesco proprio a capire dove intervenire!
Qualcuno mi può aiutare?

Grazie

Paolo

UPDATE:
La inner exception dice "Non è stata specificata la definizione del report "ClientReport.rdlc", anche se il file del report è presente nella cartella root e il nome è corretto.
Modificato da papell il 05 aprile 2016 22.02 -
24 messaggi dal 06 novembre 2014
Per quanti dovessero imbattersi nello stesso problema, ho risolto, anche se in modo decisamente poco ortodosso e che mi da decisamente sui nervi...

A quanto pare in fase di pubblicazione il file del report viene si copiato, ma anche modificato in qualche modo (si nota anche dalla dimensione del file, molto piccolo quello pubblicato).
Ho preso quindi il file del report originale e l'ho copiato sul server di produzione, adesso funziona tutto.....

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.