2009-07-31 6 views
0

J'essaie de diffuser des documents Excel que j'ai stockés dans une base de données via un flux RSS WCF (l'utilisateur clique sur un lien dans le flux et envoie un document Excel spécifique).URL dynamique du service Web WCF

Les fichiers Excel ne sont pas dans un répertoire où (dans ce cas, je pourrais simplement donner à chaque utilisateur une URL statique).

Donc ce que je voudrais faire est d'avoir une URL générée dynamiquement dans le flux RSS (ce qui indiquerait l'ID du document). Lorsque l'utilisateur clique sur l'URI, il passe à un service Web WCF qui désérialise le document Excel hors de la base de données et l'envoie à l'utilisateur (ils obtiendraient la boîte de dialogue standard Ouvrir/Enregistrer un document Excel).

Malheureusement, je n'arrive pas à obtenir le service Web pour envoyer un document que le client comprend est un document Excel. Je me dis que je dois faire quelque chose avec le point de terminaison ou un paramètre MIME dans IIS ou quelque chose d'autre, mais je n'ai pas compris ce que c'est. Remarque: J'utilise WCF hébergé sur IIS 7.0.

Merci beaucoup d'avance !!!

+0

Jusqu'où êtes-vous arrivé avec cela? Pourquoi ne pas nous montrer le code qui gère le lien cliquer? Quel est le symptôme réel, "le client ne comprend pas" n'est pas très détaillé. –

+0

Le symptôme actuel est que le client affiche simplement le flux brut de bits dans le navigateur. Après avoir fait ce qui est suggéré par Tuzo, je posterai un suivi. –

Répondre

1

Vous ne donnez pas trop d'informations spécifiques mais il se peut que vous n'ayez pas défini le type MIME. Pas sûr de ce que vous avez déjà fait mais vous pouvez faire ce que vous voulez en utilisant le WCF Rest Programming Model.

Les points clés sont à:

  • retour d'un flux sur votre interface
  • définir le type MIME: WebOperationContext.Current.OutgoingResponse.ContentType = "application/vnd.ms-Excel";
  • utiliser le WebHttpBinding et WebHttpBehavior

MSDN has a full example that returns a JPEG qui devrait faire exactement ce que vous voulez (sauf changer le type MIME JPEG à un type MIME Excel comme ci-dessus).

Bonne chance.

+0

Merci Tuzo. Cela ressemble à l'information dont j'ai besoin. J'ai un autre travail que je dois faire en premier, mais j'y arriverai au cours des prochains jours et je vous ferai savoir comment ça se passe. Merci encore. –

+0

Tuzo semble avoir fait l'affaire. Je renvoyais un octet [] plutôt qu'un flux, et ne définissais pas proprement le type MIME dans WCF. Encore une fois, merci pour l'aide! –