WCF - maxReceivedMessageSize
J'ai un problème de réglage maxReceivedMessageSize
pour les gros fichiers.
J'obtiens:
La taille de message maximale de quotas pour
les messages entrants (65536) a été
dépassée. Pour augmenter le quota, l'utilisation
le MaxReceivedMessageSize bien sur
la liaison appropriée de l'élément.
Ici, c'est mon côté serveur de configuration:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="HTTPBaseAddress" value="http://localhost:8080/WelcomeMessage/"/>
<add key="HTTPFileTransferAddress" value="http://localhost:8080/FileTransfer/"/>
</appSettings>
<system.web>
<compilation debug="false" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
<system.serviceModel>
<services>
<service name="FS.Services.MessageService" behaviorConfiguration="MyServiceTypeBehaviors">
<endpoint contract="FS.Interfaces.IMessageService" address="" binding="wsHttpBinding"/>
</service>
<service name="FS.Services.FileTransferService" behaviorConfiguration="MyServiceTypeBehaviors">
<endpoint contract="FS.Interfaces.IFileTransferService" address="" binding="basicHttpBinding" bindingConfiguration="streamedHttpBinding"/>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="streamedHttpBinding"
messageEncoding="Text"
transferMode="Streamed"
maxReceivedMessageSize="400000000"/>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceTypeBehaviors">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Ici, c'est mon côté client configuration:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<client>
<endpoint address="" binding="wsHttpBinding" contract="FS.Services.IMessageService"
name="FS.Services.MessageService" />
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="streamedHttpBinding"
contract="FS.Services.IFileTransferService" name="FS.Services.FileTransferService" />
</client>
<bindings>
<basicHttpBinding>
<binding name="streamedHttpBinding" maxReceivedMessageSize="400000000"
messageEncoding="Text" transferMode="Streamed"/>
</basicHttpBinding>
</bindings>
</system.serviceModel>
</configuration>
C'est comment je me connecte le client:
BasicHttpBinding binding2 = new BasicHttpBinding("streamedHttpBinding");
EndpointAddress endpoint2 = new EndpointAddress("http://localhost:8080/FileTransfer");
ChannelFactory<IFileTransferService> channelFactory2 = new ChannelFactory<IFileTransferService>(binding2, endpoint2);
IFileTransferService proxy2 = channelFactory2.CreateChannel();
((IClientChannel)proxy2).Open();
Aussi je voudrais transférer tout type de fichiers jusqu'à 500 mo à l'aide de flux de messages.
Quelqu'un peut-il svp me fournir de configuration (ou une solution) qui prendrait en charge que?
Merci!
- désolé ... j'ai essayé d'insérer le code, mais seulement la première ligne s'affiche...
- ok merci, fixe.
Vous devez vous connecter pour publier un commentaire.
Votre côté client config n'ont pas de
<client>
balise qui fait référence au serveur, et à laquelle on pourrait appliquer la configuration de liaison avec votre augmentation de la taille du message......Sur votre serveur côté, vous devez définir la fonction et de ses points de terminaison:
Sur votre client côté, vous devez définir votre client de point de terminaison de la connexion à l'un des points de terminaison du service
Mise à jour: ok, maintenant je vois votre config très bien - mais où est à votre client de point de terminaison de connexion?? Vous n'avez pas de
address=
défini!