Je dois modifier mon fichier web.config
et ajouter la propriété MaxReceivedMessageSize
dans My web.config
- mais où?
Le quota de taille maximale des messages entrants (65 536) a été dépassé. Pour augmenter le quota, utilisez la propriété MaxReceivedMessageSize sur l'élément de liaison approprié.
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="false"><assemblies><add Assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /></assemblies></compilation>
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
Vous devez définir une configuration de liaison pour la liaison que vous souhaitez utiliser, puis vos services (côté serveur) et vos clients (côté client) pour utiliser cette liaison et cette configuration de liaison:
<system.serviceModel>
<bindings>
<!-- pick whichever binding you want .... -->
<basicHttpBinding>
<!-- binding configuration with a name -->
<binding name="ExtendedMaxSize"
maxBufferSize="999999" maxReceivedMessageSize="999999" />
</basicHttpBinding>
</bindings>
<services>
<service name="Yournamespace.YourServiceClass" behaviorConfiguration="...">
<!-- define endpoint with your binding and the name of the binding configuration
that you have defined just above -->
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="ExtendedMaxSize"
contract="Yournamespace.IYourServiceContract" />
</service>
</services>
Pour aider ceux qui peuvent se retrouver ici comme je l'ai fait ……………. Je ne peux pas encore ajouter aux commentaires ci-dessus (en général, quelqu'un a déjà les réponses bien avant que le problème ne se pose), je dois donc ajouter une réponse.
J'ai une application MVC 4 et je soupçonne que l'échantillon initial ci-dessus provient du fichier web.config du projet de service WCF actuel. L'un des commentaires mentionne qu'ils soupçonnent qu'il s'agit d'une application MVC 4 et des paramètres de configuration par défaut.
Mais comment résoudre le problème? D'après des recherches plus poussées, il apparaît que le changement doit en réalité être apporté à la configuration web pour le CLIENT, autrement dit à la configuration Web pour le projet avec le service REFERENCE to WCF. Vous constaterez qu'il est beaucoup plus facile de faire le changement ici. Cette version de web.config ressemblera réellement à ce que vous recherchez.
Cela a fonctionné facilement pour moi et résolu mon problème.
var targetBinding = new BasicHttpsBinding();
targetBinding.MaxReceivedMessageSize = MaxWcfMessageSize;
targetBinding.MaxBufferPoolSize = MaxWcfMessageSize;
targetBinding.MaxBufferSize = MaxWcfMessageSize;
var targetBindingElements = targetBinding.CreateBindingElements();
var httpsBindElement = targetBindingElements.Find<HttpsTransportBindingElement>();
httpsBindElement.MaxReceivedMessageSize = MaxWcfMessageSize;
httpsBindElement.MaxBufferPoolSize = MaxWcfMessageSize;
httpsBindElement.MaxBufferSize = MaxWcfMessageSize;
TextMessageEncodingBindingElement tmbebe = targetBindingElements.Find<TextMessageEncodingBindingElement>();
tmbebe.ReaderQuotas.MaxArrayLength = MaxWcfMessageSize;