2009-07-31 5 views
0

Ich versuche, Excel-Dokumente bereitzustellen, die ich über einen WCF-RSS-Feed in einer Datenbank gespeichert habe (der Benutzer klickt auf einen Link im Feed und sendet ein bestimmtes Excel-Dokument).Dynamische URL vom WCF-Webdienst

Die Excel-Dateien sitzen nicht in einem Verzeichnis wo (in diesem Fall könnte ich einfach jedem Benutzer eine statische URL geben).

Also, was ich tun möchte, ist eine dynamisch generierte URL im RSS-Feed (die die ID des Dokuments angeben würde). Wenn der Benutzer auf den URI klickt, wird er an einen WCF-Webdienst weitergeleitet, der das Excel-Dokument aus der Datenbank deserialisiert und an den Benutzer sendet (sie erhalten den Standarddialog zum Öffnen/Speichern von Excel-Dokumenten).

Leider kann ich nicht scheinen, dass der Webservice ein Dokument sendet, von dem der Klient versteht, dass es ein Excel-Dokument ist. Ich denke, dass ich etwas mit dem Endpunkt oder einer MIME-Einstellung in IIS oder etwas ganz anderes tun muss, aber ich habe nicht herausgefunden, was das ist.

Hinweis, ich verwende WCF gehostet auf IIS 7.0.

Vielen Dank im Voraus !!!

+0

Wie weit sind Sie damit? Warum zeigen Sie uns nicht den Code, der den Link klickt? Was ist das eigentliche Symptom, "Client versteht nicht" ist nicht sehr detailliert. –

+0

Das eigentliche Symptom ist, dass der Client nur den rohen Bitstrom im Browser anzeigt. Nachdem ich getan habe, was von Tuzo vorgeschlagen wird, werde ich einige Follow-ups veröffentlichen. –

Antwort

1

Sie geben nicht zu viele spezifische Informationen, aber es könnte sein, dass Sie den MIME-Typ nicht festgelegt haben. Nicht sicher, was Sie bereits getan haben, aber Sie können tun, was Sie wollen mit dem WCF Rest Programming Model.

Die wichtigsten Punkte sind:

  • Rückkehr einen Stream auf Ihrer Schnittstelle
  • den MIME-Typ festgelegt: WebOperationContext.Current.OutgoingResponse.ContentType = "application/vnd.ms-excel";
  • verwenden, um das WebHttpBinding und WebHttpBehavior

MSDN has a full example that returns a JPEG die genau tun soll, was Sie wollen (außer den oben MIME-Typen in einen Excel-MIME-Typ JPEG ändern).

Viel Glück.

+0

Danke Tuzo. Das klingt nach den Informationen, die ich brauche. Ich habe eine andere Arbeit, die ich zuerst machen muss, aber ich werde am nächsten Tag oder so weiterkommen und dich wissen lassen, wie es läuft. Noch einmal Danke. –

+0

Tuzo scheint dies getan zu haben. Ich habe ein Byte [] anstelle eines Streams zurückgegeben und den MIME-Typ in WCF nicht ordnungsgemäß festgelegt. Nochmals vielen Dank für die Hilfe! –