PDF-Datei mit der WCF Restful-Dienste

Aufgabe: in der Lage sein, um das Rendern einer PDF-Datei, wenn der Benutzer auf einen link klickt (was ist ein WCF Service {Beispiel: http://localhost:6186/MyReportServices.svc/reports/012}). Der Service geht und holt sich den Bericht von SSRS-Server und gibt den Stream. Hier ist das Stück code, dass ist in .

[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]
public class AssistReportServices : IAssistReportServices
{
    public Stream GetReport(int value)
    {
      //skipped some lines of code. 
      try
        {
          result = rs.Render(format, devInfo, out extension, out encoding, out mimeType, out warnings, out streamIDs);
          execInfo = rs.GetExecutionInfo();             
        }
      catch (SoapException err)
        {
            throw;
        }
      MemoryStream ms = new MemoryStream();
      ms.Write(result, 0, result.Length);
      ms.Position = 0;
      //WebOperationContext.Current.OutgoingResponse.ContentType = ConfigurationManager.AppSettings["ResponseType"];
      WebOperationContext.Current.OutgoingResponse.ContentType = "application/pdf";
      return ms; 
    }
 }

Mein Betrieb-Vertrag sieht wie folgt aus:

[OperationContract(Action = "*")]
[WebInvoke(Method = "POST",
    UriTemplate = "reports/{value}")]
Stream GetReport(int value);

So weit So gut. Aber hier ist das problem... Wenn ich auf den link oben, bekomme ich die folgende Fehlermeldung in einem Dialogfeld mit dem Titel Adobe Reader und Nachricht:

Datei beginnt nicht mit '%PDF-'.

Fehler Bild: http://i.imgur.com/A4J68.png

Kann ich den Speicher-Stream zu einer Datei und manuelles öffnen der pdf-Datei, und es öffnet sich einfach gut, ohne Probleme.

Dank.

  • Die Fehlermeldung sieht aus wie es, mehr von einem problem, dass Acrobat denkt, es ist das öffnen einer Datei mit dem Namen 012 und nicht eine Datei mit dem Namen 012.pdf etc.
InformationsquelleAutor Apurv | 2011-07-25
Schreibe einen Kommentar