Senden Objekt WCF-Dienst. MaxStringContentLength (8192 bytes) überschritten, wenn die Deserialisieren

Habe ich eine einfache WCF-web service, der eine Methode: SubmitTicket(Flug ft, string username, string password)

Auf der client-Seite, ich habe eine Anwendung für das ausfüllen eines Formulars (ein Flug-ticket) und senden diese neu erstellten web service. Wenn dieses Flug-Objekt überschreitet 8192bytes bekomme ich die folgende Fehlermeldung:

"Es wurde ein Fehler beim Deserialisieren des Objekts vom Typ Flug. Die maximale string-Länge des Inhalts Quote (8192) wurde überschritten beim Lesen von XML-Daten. Diese Quote kann erhöht werden, durch ändern der MaxStringContentLength Eigenschaft auf die XmlDictionaryReaderQuotas Objekt beim erstellen des XML-Lesers"

Habe ich einige der Forschung online und fand, dass ich habe die MaxStringContentLength im web.config (server) und app.config (client) auf eine höhere Nummer. Problem ist, ich habe versucht, jede mögliche Kombination von Einstellungen in den beiden config-Dateien aus dem Lesen der verschiedenen blogs und Websites, aber es immer NOCH nicht auf, dass die gleichen Fehler!

Ich angehängt habe meinen client-und server-config-code (so wie es im moment ist, hat es schon viele, viele, viele Veränderungen im Laufe des Tages ohne Erfolg).

Eine Sache, die ich bemerkt ist, dass die Konfiguration.svcinfo Datei auf meinem client-Anwendung scheint immer zeigt 8192 für MaxStringContentLength, wenn ich ein update der service Referenz. Es erscheint die Standard-Werte, auch wenn ich explizit den verbindlichen Eigenschaften. Nicht ob das bezogen auf mein problem, aber erwähnenswert.


Hier ist das anwendbare app.config/web.config-code für die Definition der Endpunkt Bindungen:

<<<<< KUNDE >>>>>

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_IFlightTicketWebService" closeTimeout="00:01:00"
                openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                useDefaultWebProxy="true">
                <readerQuotas maxDepth="32" maxStringContentLength="65536" maxArrayLength="16384"
                    maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                <security mode="None">
                    <transport clientCredentialType="None" proxyCredentialType="None"
                        realm="" />
                    <message clientCredentialType="UserName" algorithmSuite="Default" />
                </security>
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="http://xx.xx.xx/xxxxxxxx.svc"
            binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IFlightTicketWebService"
            contract="FlightTicketWebService.IFlightTicketWebService"
            name="BasicHttpBinding_IFlightTicketWebService" />
    </client>
</system.serviceModel>
</configuration>

<<<<< SERVER >>>>>

<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
  <section name="GSH.FlightTicketWebService.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web>
<httpRuntime maxRequestLength="16384"/>
<compilation debug="true" targetFramework="4.0"/>
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
</system.web>

<system.serviceModel>
  <bindings>
      <basicHttpBinding>
          <binding name="BasicHttpBinding_IFlightTicketWebService" closeTimeout="00:01:00"
              openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
              allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
              maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
              messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
              useDefaultWebProxy="true">
              <readerQuotas maxDepth="32" maxStringContentLength="65536" maxArrayLength="16384"
                  maxBytesPerRead="4096" maxNameTableCharCount="16384" />
              <security mode="None">
                  <transport clientCredentialType="None" proxyCredentialType="None"
                      realm="" />
                  <message clientCredentialType="UserName" algorithmSuite="Default" />
              </security>
          </binding>
      </basicHttpBinding>
  </bindings>
<behaviors>     
<serviceBehaviors>        
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
      <serviceMetadata httpGetEnabled="true"/>
      <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
      <serviceDebug includeExceptionDetailInFaults="true"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
<services>
    <service name="FlightTicketWebService">
        <endpoint 
            name="FlightTicketWebServiceBinding"
            address="http://xx.xx.xx/xxxxxxxxxxx.svc" 
            binding="basicHttpBinding" 
            bindingConfiguration="BasicHttpBinding_IFlightTicketWebService"
            contract="IFlightTicketWebService"/>
    </service>
</services>
</system.serviceModel>
<system.webServer>

InformationsquelleAutor deadcom | 2011-08-16

Schreibe einen Kommentar