WCF , Le serveur distant a retourné une erreur: (400) Bad Request
Je reçois cette exception lorsque vous tentez d'accéder à un service web wcf.
[WebException: The remote server returned an error: (400) Bad Request.]
System.Net.HttpWebRequest.GetResponse() +5314029
System.ServiceModel.Channels.HttpChannelRequest.WaitForReply(TimeSpan timeout) +54
Serveur D'Informations De Liaison
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="wcfSmartConnect" closeTimeout="10:01:00"
maxBufferSize="104857600" maxBufferPoolSize="104857600"
maxReceivedMessageSize="104857600" openTimeout="10:01:00"
receiveTimeout="10:10:00" sendTimeout="10:01:00"
messageEncoding="Mtom" transferMode="StreamedRequest">
<readerQuotas maxDepth="104857600" maxStringContentLength="104857600"
maxArrayLength="104857600" maxBytesPerRead="104857600"
maxNameTableCharCount="104857600" />
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="WcfSmartConnect.Service1"
behaviorConfiguration="WcfSmartConnect.Service1Behavior">
<endpoint
address=""
binding="basicHttpBinding"
bindingConfiguration="wcfSmartConnect"
contract="WcfSmartConnect.IService1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint
address="mex"
binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="WcfSmartConnect.Service1Behavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Liaison De Client De L'Information
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="wcfSmartConnect" closeTimeout="10:01:00"
maxBufferSize="104857600" maxBufferPoolSize="104857600"
maxReceivedMessageSize="104857600" openTimeout="10:01:00"
receiveTimeout="10:10:00" sendTimeout="10:01:00"
messageEncoding="Mtom" transferMode="StreamedRequest">
<readerQuotas maxDepth="104857600" maxStringContentLength="104857600"
maxArrayLength="104857600" maxBytesPerRead="104857600"
maxNameTableCharCount="104857600" />
</binding>
</basicHttpBinding>
<wsHttpBinding>
<binding name="WSHttpBinding_IService11" closeTimeout="01:00:00"
openTimeout="01:00:00" receiveTimeout="01:00:00"
sendTimeout="01:00:00" bypassProxyOnLocal="false"
transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="1048576000" maxReceivedMessageSize="1048576000"
messageEncoding="Text" textEncoding="utf-8"
useDefaultWebProxy="true" allowCookies="false">
<readerQuotas maxDepth="104857600" maxStringContentLength="104857600"
maxArrayLength="104857600" maxBytesPerRead="1048576000"
maxNameTableCharCount="104857600" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Windows"
proxyCredentialType="None" realm="" />
<message clientCredentialType="Windows"
negotiateServiceCredential="true" algorithmSuite="Default"
establishSecurityContext="true" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint name="WSHttpBinding_IService11"
address="http://abc.com/API/serv.svc"
binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IService11"
contract="SmartConnectRepublic.IService1" >
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint name="BasicHttpBinding_IService1"
address="http://localhost:4649/Service1.svc"
binding="basicHttpBinding"
bindingConfiguration="wcfSmartConnect"
contract="SmartConnect.IService1" />
</client>
</system.serviceModel>
et qui les liaisons êtes-vous en fait?? Le BasicHttpBinding ou la wsHttpBinding??
OriginalL'auteur Pinu | 2010-03-16
Vous devez vous connecter pour publier un commentaire.
Pouvez-vous nous en dire un peu plus sur votre configuration?
<system.serviceModel>
est d'intérêt)Il semblerait que si le client les temps d'attente pour le serveur - ce peut-être parce que le serveur met trop de temps à répondre (si vous faites beaucoup de chargement de données); dans ce cas, vous devez augmenter vos délais d'attente sur le serveur et le client
Ou peut-être envoyer un trop grand qu'un paquet de données sur le fil - dans ce cas, vous pourriez aussi avoir besoin d'augmenter les paramètres de
maxReceivedMessageSize
et coll.@Pinu: êtes-vous essayer de télécharger 5 MO? Vous avez transferMode=StreamRequest, ce qui signifie que votre demande du client vers le serveur va être diffusé.
Si vous effectuez un transfert de 5 MO, c'est une bonne idée de flux - de quelle manière avez-vous le transfert de ces octets??
Hey Marc, C'est jeter cette erreur quand j'active transfermode="flux" il est en train de lancer cette erreur. Avec transfermode=tampon il me permet d'envoyer jusqu'à 3 mo de fichiers. Je suis également à l'aide contrat de message et de flux de mémoire pour demander le flux de mémoire
OriginalL'auteur marc_s