2009-03-04 8 views
2

J'ai un service WCF hébergé sur un service Windows. Maintenant je veux ajouter la fonctionnalité de transfert de fichier à ce service mais j'ai les questions suivantes; considérant que le transfert de fichiers sont les deux façons et les fichiers ne sont pas grand (environ 10 Mo):Quelques questions sur le transfert de fichier à l'aide de WCF

1: Je l'ai lu dans MSDN que « opérations qui se produisent dans un transport de flux continu peut avoir un contrat avec au plus une entrée ou d'un paramètre de sortie ". Cela signifie-t-il que je ne peux pas avoir une opération avec plus d'un paramètre ou quoi?

2: Si j'utilise En mode de transfert, dois-je me préoccuper de la taille des données transférées dans les opérations dont les paramètres "in" ou "out" sont des collections?

3: Dois-je changer quoi que ce soit d'autre que le TransferMode afin de régler le mode sur Streamed?

Merci.

Répondre

3

Jetez un oeil à this post pour une direction sur le transfert de fichiers WCF. Vous devriez utiliser l'encodeur MTOM. Le poste a quelques bonnes raisons et a quelques exemples.

  1. Oui.
  2. Tant que tout est codé en continu à l'aide de MTOM, la taille ne devrait pas avoir d'importance. Assurez-vous de définir la valeur maxReceivedMessageSize dans la configuration de liaison.
  3. Cela et créer un contrat de message pour les messages. Voir ci-dessous:

contrat Exemple de message:

[MessageContract()] 
public class FileTransferRequest 
{ 
    [MessageHeader(MustUnderstand = true)] 
    public string FileName; 

    [MessageBodyMember(Order = 1)] 
    public System.IO.Stream Data; 
} 
Questions connexes