HTTP 400 Bad Request Error avec WCF Service lorsque la taille du message dépasse 64 KO

J'ai un .NET 4.0 service WCF. Si j'envoie un message soap supérieure à 64 ko, puis-je obtenir "Le serveur distant a renvoyé une réponse inattendue: (400) Bad Request" Erreur. Il fonctionne très bien tout le chemin jusqu'à ce que je dépasse les 64 KO de taille de message. J'ai lu les nombreux posts qui circulent sur quoi faire pour cette erreur, et aussi loin que je peux dire, j'ai le bon web.config valeurs, mais j'ai toujours l'erreur. Voici les paramètres de mon site web.config. Rien de ce que je suis absent? Cela se produit lors de la communication à la fois à mon local ASP.NET VS et un serveur distant Windows 2008 R2 serveur IIS. Est-il un moyen de vérifier ou de journal de la maxReceivedMessageSize paramètres, etc. qui sont dans la liaison de service en temps réel ou dans le débogueur? Le service est hébergé dans MVC si cela fait une différence.

<httpRuntime  maxRequestLength="50000000" />

...

...

<bindings>
  <basicHttpBinding>

    <binding name="IpsApiBinding" receiveTimeout="00:15:00" sendTimeout="00:05:00" maxReceivedMessageSize="40000000">
      <readerQuotas maxDepth="5000000" maxStringContentLength="50000000"
        maxArrayLength="50000000" maxBytesPerRead="50000000" />
    </binding>

  </basicHttpBinding>
</bindings>


<services>

  <service behaviorConfiguration="ApiBehavior" name="IPSApi.IpsApi">
    <endpoint behaviorConfiguration="endpointBehavior" binding="basicHttpBinding"
      bindingConfiguration="IpsApiBinding" name="IPSApi.IpsApi"
      contract="IPSApi.IIPSApi" />
  </service>

</services>

<behaviors>

  <endpointBehaviors>
    <behavior name="endpointBehavior">
      <dataContractSerializer maxItemsInObjectGraph="6553600" />
      <callbackDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </endpointBehaviors>

  <serviceBehaviors>
    <behavior name="ApiBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>

</behaviors>

<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true"  />

Sur le côté client, la pile de la piste est de montrer...

Serveur de trace de pile: à
Système.ServiceModel.Les canaux.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest
demande, HttpWebResponse réponse, HttpChannelFactory usine,
WebException responseException, ChannelBinding channelBinding) à
Système.ServiceModel.Les canaux.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan
délai d'attente)
Système.ServiceModel.Les canaux.RequestChannel.Demande(Message,
Plage de temps (timeout) à
Système.ServiceModel.Répartiteur.RequestChannelBinder.Demande(Message
message, plage de Temps (timeout) à
Système.ServiceModel.Les canaux.ServiceChannel.Appelez le(la Chaîne de l'action,
Boolean oneway, ProxyOperationRuntime opération, Object[] ins,
Object[] sorties, la plage de Temps (timeout) à
Système.ServiceModel.Les canaux.ServiceChannel.Appelez le(la Chaîne de l'action,
Boolean oneway, ProxyOperationRuntime opération, Object[] ins,
Object[] out) à
Système.ServiceModel.Les canaux.ServiceChannelProxy.InvokeService(IMethodCallMessage
appel de méthode, ProxyOperationRuntime opération) à
Système.ServiceModel.Les canaux.ServiceChannelProxy.Invoke(IMessage
message) Exception renvoyé à [0]:
Système.Moment de l'exécution.L'accès distant.Les procurations.RealProxy.HandleReturnMessage(IMessage
reqMsg, IMessage retMsg) ...

Voyez-vous une erreur sur le serveur? Si c'est IIS hébergé alors il serait susceptible d'apparaître dans le Journal des Événements avec une Source de l'Événement de ASP.NET.
aucune erreur ne se produit sur le côté serveur - pas de journaux d'événements, et aucune exception
Avez-vous essayé tous les réglages ici?
Lester, oui, je pense que j'ai tous ces paramètres. Curieux, sont le max.. les valeurs de la taille requise sur le côté client? Ce sont vraiment que d'un côté serveur, correct? J'ai ajouté pour le côté client, n'a toujours pas de faire une différence. Vous vous demandez encore si. thx

OriginalL'auteur Ron | 2011-12-23