Es ist eine Weile her, dass ich diesen Code nicht, aber es kann helfen: Ihr Webprojekt eine Web-Site zu sein hat, und kein Projekt vom Typ "ASP.Net Web Application", oder Sie können die unten erwähnte Referenz nicht hinzufügen. Klicken Sie mit der rechten Maustaste auf das Projekt und fügen Sie einen ASP.Net-Ordner hinzu - App_WebReferences. Sie müssen den Server angeben, auf dem sich Ihr SRS befindet. wähle das .asmx. Sobald es hinzugefügt wird, heißt der Ordner unter dieser Ebene RSService, und darunter sind 2 Dinge: reportservice.discomap & .wsdl. In meinem VB, ich Import RSService und Importe System.Web.Services.Protocols, dann ...
Dim MyRS As New ReportingService
Der Reporting-Dienst auf einem anderen Server als den Webserver ist die App eingeschaltet ist, so kann ich‘ t wie folgt vor: MyRS.Credentials = System.Net.CredentialCache.DefaultCredentials
statt. MyRS.Credentials = New System.Net.NetworkCredential(rs1, rs2, rs3)
, wo die RS1/2/3 sind die Anmeldung zur SRS-Box, ein Passwort zu SRS-Box, & Domain-Namen“(. Diese werden verschlüsselt in meinem web.config)
Dann eine Masse-Paste:
MyRS.Credentials = New System.Net.NetworkCredential(rs1, rs2, rs3)
Dim ReportByteArray As Byte() = Nothing
Dim ReportPath As String = "/SRSSiteSubFolder/ReportNameWithoutRDLExtension"
Dim ReportFormat As String = "PDF"
Dim HistoryID As String = Nothing
Dim DevInfo As String = "<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>"
'Dim x As ReportParameter - not necessary
Dim ReportParams(0) As ParameterValue
ReportParams(0) = New ParameterValue()
ReportParams(0).Name = "TheParamName"
ReportParams(0).Value = WhateverValue
Dim Credentials As DataSourceCredentials() = Nothing
Dim ShowHideToggle As String = Nothing
Dim Encoding As String
Dim MimeType As String
Dim ReportHistoryParameters As ParameterValue() = Nothing
Dim Warnings As Warning() = Nothing
Dim StreamIDs As String() = Nothing
'Dim sh As New SessionHeader() - not necessary
''MyRS.SessionHeaderValue = sh - not necessary
ReportByteArray = MyRS.Render(ReportPath, ReportFormat, HistoryID, DevInfo, ReportParams, Credentials, _
ShowHideToggle, Encoding, MimeType, ReportHistoryParameters, Warnings, StreamIDs)
'(Yay! That line was giving "HTTP error 401 - Unauthorized", until I set the credentials
' as above, as explained by http://www.odetocode.com/Articles/216.aspx.)
'Write the contents of the report to a PDF file:
Dim fs As FileStream = File.Create(FullReportPath, ReportByteArray.Length)
fs.Write(ReportByteArray, 0, ReportByteArray.Length)
fs.Close()
Call EmailTheReport(FullReportPath)
If IO.File.Exists(FullReportPath) Then
IO.File.Delete(FullReportPath)
End If
Was passiert, wenn ich keine lokalen Berichte verwende, aber keine expliziten Werte in der URL hinterlassen möchte? – Leonardo