Der remote-server eine unerwartete Antwort zurückgegeben: (400) Bad Request
Bekomme ich keine Fehlermeldung beim aufrufen meiner WCF-service-Methoden, außer in einem.
Diese spezielle Methode namens SaveTemplate() nimmt eine Eingabe von byte[].
Ich Teste diese Methode, die eine Datei mit der Größe byte[806803],
aber endet in einer Fehlermeldung:
WCF - Der remote-server eine unerwartete Antwort zurückgegeben: (400) Bad Request.*
Ich gegangen durch verschiedene such-Ergebnisse habe ich über Google gefunden und machte einige änderungen in der app.config nach auf, aber immer noch den Fehler 🙁
Hier ist mein WCF Service Library App.Config-Datei:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<compilation debug="true" />
</system.web>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="wsHttp" maxReceivedMessageSize="50000000" maxBufferPoolSize="50000000"
messageEncoding="Mtom" >
<readerQuotas maxDepth="500000000" maxStringContentLength="500000000" maxArrayLength="500000000"
maxBytesPerRead="500000000" maxNameTableCharCount="500000000" />
<security mode="None"></security>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="ReportingComponentLibrary.TemplateServiceBehavior"
name="ReportingComponentLibrary.TemplateService">
<endpoint address="" binding="wsHttpBinding" contract="ReportingComponentLibrary.ITemplateService" bindingConfiguration="wsHttp" >
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" ></endpoint>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/ReportingComponentLibrary/TemplateService/" />
</baseAddresses>
</host>
</service>
<service behaviorConfiguration="ReportingComponentLibrary.TemplateServiceBehavior"
name="ReportingComponentLibrary.TemplateReportService">
<endpoint address="" binding="wsHttpBinding" contract="ReportingComponentLibrary.ITemplateReportService" bindingConfiguration="wsHttp" >
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/ReportingComponentLibrary/TemplateReportService/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ReportingComponentLibrary.TemplateServiceBehavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="True" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Können Sie bitte einen vollständigen stack-trace?
InformationsquelleAutor iniki | 2009-10-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Sie erscheinen, um sein hosting innerhalb von ASP.NET in IIS, die Sie benötigen, um sicherzustellen, dass die Anfrage Länge ASP.NET erlaubt ist auch in Ergänzung zu WCF die verschiedenen Einstellungen. Für ASP.NET die Einstellung die du suchst ist
maxRequestLength
auf diehttpRuntime
- element. Der Standardwert für diese Einstellung ist nur 4MB groß, also das würde erklären, warum Sie laufen in ein Problem.Aussehen würden, ein wenig so etwas wie dieses für eine 512MB maxLength:
Auch, bitte lassen Sie mich wissen, wenn ich entfernen können < - system.Web - > - Tags als ganzes, da ich mein hosting von WCF-Service-Bibliothek, die unter einem windows-Dienst.
Oh, na dann, " das ändert die Dinge völlig. Es gibt definitiv keine Notwendigkeit für <system.web - > es sei denn, Sie sind hosting innerhalb von ASP.NET. Lemme denken über andere Probleme, die Sie haben könnten.
Ich habe entfernt die <system.web - > der Abschnitt aus der config-Datei, aber ich bin noch immer die gleiche Fehlermeldung beim Aufruf einer service-Methode mit der Signatur public bool SaveTemplate(string name, byte[] templateDoc, int templateGroupId), ich Teste das mit einem byte-array der Größe byte[806803] für den zweiten parameter. Wenn Sie sehen, habe ich bereits versucht, indem Verbindliche Konfiguration in der app.config. Bitte lassen Sie mich wissen, wenn ich bin fehlt dort etwas. Danke!!!
InformationsquelleAutor Drew Marsh
Danke für alle Hilfe!
War es meine Unwissenheit, dass verursacht mich zu nehmen so viel Zeit, es zu beheben.
Hatte ich Fehler beim update der config-Datei von meinem Windows-Dienst mit dem neuen Binding-Konfiguration. Stattdessen war ich einfach nur kopieren einer separaten config-Datei im Windows-Service-Verzeichnis.
FWIW, die akzeptierten Antworten in diesem post für mich gearbeitet. stackoverflow.com/questions/784606/...
InformationsquelleAutor iniki
Meine 50 Cent: ändern Sie den Wert für das Attribut maxRequestLength von httpRuntime-element von 65536 bis 2147483647.
InformationsquelleAutor vpcastelo