здесь мы получили старую БД при прогрессе, и мы хотим напечатать метки с нее с помощью vs2012, мы обнаружили, что для этого нужно сделать WCF и rdlc, На локальном хосте он отлично работает, я могу получить ярлыки, напечатанные, а файлы журналов показывают, что вся информация в порядке, но когда я запускаю ее на сервере (по протоколу прогресса или с помощью WcfTestClient.exe), это дает мне ошибку, мой файл журнала показывает, что отчет не готов к рендерингу, даже когда я запускаю его с использованием тех же параметров,Мой Rdlc работает на моем компьютере, но не на сервере
Я не использую набор данных, потому что для отчета нужны только параметры для печати этикеток.
Пожалуйста, не грубите, я на самом деле новичок в этом, 2 недели назад Я не знал, что такое Wcf, rdlc, SSRS и ничего об этом, это все новое для меня, поэтому ожидайте некоторые ошибки noobish ,
Вот фрагмент кода, который хорошо работает на локальном хосте, но не на сервере;
Public Class GoPrint
Shared Sub StartPrinting(ByVal vpdfname As String, ByVal vExt As String, ByVal vPDFPath As String, ByVal deviceInfo As String, ByVal StreamPath As String, ByVal vReportPath As String, ByVal vReportEmbedded As String, ByVal vPrinter As String, ByVal vParams As String) 'Viene de R4, inicia el proceso y manda parametros
On Error GoTo Issues
Registro("StartPrinting", "--------------------------------------------------------------")
Dim ErrorEnReferencias As Boolean = False
If IsNothing(vParams) Then
Registro("StartPrinting", "Error: Los parametros estaban vacios")
ErrorEnReferencias = True
End If
If Not File.Exists(vReportPath.Replace("|", "\")) Then
Registro("StartPrinting", "Error: No se encontro el path del reporte")
ErrorEnReferencias = True
End If
If Not File.Exists(vReportEmbedded.Replace("|", "\")) Then
Registro("StartPrinting", "Error: No se encontro el path del reporte incrustado")
ErrorEnReferencias = True
End If
If Not ErrorEnReferencias Then
Registro("StartPrinting", "No se encontraron errores en los parametros enviados")
Registro("StartPrinting", "Lista de parametros del reporte excepto vParams (Nombre,Valor):")
Registro("StartPrinting", " +vpdfname = " & vpdfname)
Registro("StartPrinting", " +vExt = " & vExt)
Registro("StartPrinting", " +vPDFPath = " & vPDFPath)
Registro("StartPrinting", " +deviceInfo = " & deviceInfo)
Registro("StartPrinting", " +StreamPath = " & StreamPath)
Registro("StartPrinting", " +vReportPath = " & vReportPath)
Registro("StartPrinting", " +vReportEmbedded = " & vReportEmbedded)
Registro("StartPrinting", " +vPrinter = " & vPrinter)
Dim qtyOfParams As Integer = (CountCharacters(vParams, "|"c)/3)
Dim SplitParams() As String = vParams.Split(New Char() {"|"c})
Dim EtqParams() As ReportParameter = New ReportParameter(qtyOfParams - 1) {}
Registro("StartPrinting", "Lista de parametros (vParam) del reporte (Nombre,Valor,Visible):")
For count = 1 To qtyOfParams
If SplitParams(1 + (count * 3 - 3)).IndexOf("[#") <> -1 Then SplitParams(1 + (count * 3 - 3)) = EncodeBarcodes(SplitParams(1 + (count * 3 - 3)))
EtqParams(count - 1) = (New ReportParameter(CStr(SplitParams(0 + (count * 3 - 3))), CStr(SplitParams(1 + (count * 3 - 3))), SplitParams(2 + (count * 3 - 3))))
Registro("StartPrinting", " +" & CStr(SplitParams(0 + (count * 3 - 3))) & "," & CStr(SplitParams(1 + (count * 3 - 3))) & "," & SplitParams(2 + (count * 3 - 3)))
Next
Dim permissions As New PermissionSet(PermissionState.Unrestricted)
Dim MYreport As LocalReport = New LocalReport()
MYreport.SetBasePermissionsForSandboxAppDomain(permissions)
MYreport.ReportPath = vReportPath.Replace("|", "\") 'No puedo pasar \ como parametro y mando | para los paths
MYreport.ReportEmbeddedResource = vReportEmbedded.Replace("|", "\")
MYreport.DataSources.Clear()
If MYreport.IsReadyForRendering Then
Registro("StartPrinting", "MYreport.IsReadyForRendering = Si")
MYreport.SetParameters(EtqParams)
MYreport.Refresh()
Registro("StartPrinting", "Creacion del reporte local y asignacion de propiedades terminada")
Registro("StartPrinting", " +MYreport.SetBasePermissionsForSandboxAppDomain(permissions), unrestricted")
Registro("StartPrinting", " +MYreport.ReportPath = " & MYreport.ReportPath)
Registro("StartPrinting", " +MYreport.ReportPath = " & MYreport.ReportEmbeddedResource)
Registro("StartPrinting", " +MYreport.SetParameters(EtqParams), (Lista de parametros)")
Dim PrintReport = New Reporting
PrintReport.Export(MYreport, vpdfname, vExt, vPDFPath.Replace("|", "\"), deviceInfo, StreamPath.Replace("|", "\"))
Registro("StartPrinting", "Creacion de pdf y raw de impresion completa")
PrintReport.Print(vPrinter)
Else
Registro("StartPrinting", "MYreport.IsReadyForRendering = No")
End If
Registro("StartPrinting", "Proceso finalizado")
Registro("StartPrinting", "--------------------------------------------------------------")
End If
Issues:
Registro("StartPrinting", Err.Number & " " & Err.Description)
Registro("StartPrinting", "--------------------------------------------------------------")
End Sub
А вот что показывает мой лог-файл,
Registro de Errores
StartPrinting; -------------------------------------------------------------- -- 12/26/2014 5:05:37 PM
StartPrinting; No se encontraron errores en los parametros enviados -- 12/26/2014 5:05:37 PM
StartPrinting; +Lista de parametros del reporte excepto vParams (Nombre,Valor): -- 12/26/2014 5:05:37 PM
StartPrinting; +vpdfname = TST00003_1_AmaLbl -- 12/26/2014 5:05:37 PM
StartPrinting; +vExt = pdf -- 12/26/2014 5:05:37 PM
StartPrinting; +vPDFPath = ||vsn2k841|WCFparaRPT|AmaLbl|PDF| -- 12/26/2014 5:05:37 PM
StartPrinting; +deviceInfo = <DeviceInfo><OutputFormat>EMF</OutputFormat><PageWidth>3in</PageWidth><PageHeight>5in</PageHeight><MarginTop>0in</MarginTop><MarginLeft>0in</MarginLeft><MarginRight>0in</MarginRight><MarginBottom>0in</MarginBottom></DeviceInfo> -- 12/26/2014 5:05:37 PM
StartPrinting; +StreamPath = ||vsn2k841|WCFparaRPT|AmaLbl|Stream| -- 12/26/2014 5:05:37 PM
StartPrinting; +vReportPath = ||vsn2k841|WCFparaRPT|AmaLbl|AmaLbl.rdlc -- 12/26/2014 5:05:37 PM
StartPrinting; +vReportEmbedded = ||vsn2k841|WCFparaRPT|AmaLbl|AmaLbl.rdlc -- 12/26/2014 5:05:37 PM
StartPrinting; +vPrinter = LaserESCLOG -- 12/26/2014 5:05:37 PM
StartPrinting; Lista de parametros (vParam) del reporte (Nombre,Valor,Visible): -- 12/26/2014 5:05:37 PM
StartPrinting; +PSFN,LOUISVILLE LADDER,True -- 12/26/2014 5:05:37 PM
StartPrinting; +PSFA,855 DUNKS FERRY RD,True -- 12/26/2014 5:05:37 PM
StartPrinting; +PSFZ,19020,True -- 12/26/2014 5:05:37 PM
StartPrinting; +PSTN,AMAZON.COM.DEDC LLC,True -- 12/26/2014 5:05:37 PM
StartPrinting; +PSTA,1 CENTERPOINT BLVD.,True -- 12/26/2014 5:05:37 PM
StartPrinting; +PSTZ,19720,True -- 12/26/2014 5:05:37 PM
StartPrinting; +PBCZ,*19720*,True -- 12/26/2014 5:05:37 PM
StartPrinting; +PCar,UPSA,True -- 12/26/2014 5:05:37 PM
StartPrinting; +PPro,Test ETQ,True -- 12/26/2014 5:05:37 PM
StartPrinting; +PBol,435462,True -- 12/26/2014 5:05:37 PM
StartPrinting; +PPO,TST00003,True -- 12/26/2014 5:05:37 PM
StartPrinting; +PUPC,728865090928,True -- 12/26/2014 5:05:37 PM
StartPrinting; +PQTY,3,True -- 12/26/2014 5:05:37 PM
StartPrinting; +PCartonNo,1,True -- 12/26/2014 5:05:37 PM
StartPrinting; +PCartonTo,1,True -- 12/26/2014 5:05:37 PM
StartPrinting; +PBCPO,*TST00003*,True -- 12/26/2014 5:05:37 PM
StartPrinting; +PBCSSCC,›˜€*hxa$CN4.^œ,True -- 12/26/2014 5:05:37 PM
StartPrinting; +PSSCC,00107288650435462014,True -- 12/26/2014 5:05:37 PM
StartPrinting; MYreport.IsReadyForRendering = No -- 12/26/2014 5:05:38 PM
StartPrinting; Proceso finalizado -- 12/26/2014 5:05:38 PM
StartPrinting; -------------------------------------------------------------- -- 12/26/2014 5:05:38 PM
StartPrinting; 0 -- 12/26/2014 5:05:38 PM
StartPrinting; -------------------------------------------------------------- -- 12/26/2014 5:05:38 PM
Единственное различие между этим журналом и рабочим является то, что отчеты делают и продолжайте идти на процесс печати, я использую точные те же параметры,
BTW, уже получил мои dlls в папке bin.
Просто обновление, я изменил свойства reportpath и reportembeddedresource для потока Dim streamrdlc As FileStream = File.OpenRead (vReportPath.Replace ("|", "\")) MYreport.LoadReportDefinition (streamrdlc) Все еще работает localhost, но не на сервере – MarxRx