WF receive large dataset

lunedì 27 dicembre 2010 - 17.36
Tag Elenco Tags  C#  |  .NET 3.5  |  Visual Studio 2010

v.iacono Profilo | Newbie

Riscontro questo problema, che cerco di riassumere sotto:

1 - ho generato una classe dataset con l'editor per i dataset di visualstudio 2010
2 - ho un servizio wcf che riceve dalle app chiamanti il dataset per riferimento
3 - ho un client con un riferimento web al servizio wcf
4 - il client costruisce il dataset e lo invia al servizio wcf

se il dataset è grande l'applicazione va in errore!!!!!!!!!! con il tool svctraceview vedo il seguente messaggio:

"Superata la lunghezza massima della richiesta"

ho provato a cambiare la configurazione degli endpoint ma il risultato non cambia
allego di seguito la configurazione attuale

servizio wcf:
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IVertexService"
messageEncoding="Mtom" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647">
<readerQuotas maxArrayLength="5000000" maxStringContentLength="5000000"/>
</binding>
</wsHttpBinding>
<!-- basicHttpBinding>
<binding name="BasicHttpBinding_IVertexService"
messageEncoding="Mtom">
<readerQuotas maxArrayLength="5000000"/>
</binding>
</basicHttpBinding -->
</bindings>
<services>
<service name="VertexService">
<clear />
<!-- endpoint binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IVertexService"
contract="Lluthus.Vertex.Service.VertexService.IVertexService" -->
<endpoint binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IVertexService"
contract="Lluthus.Vertex.Service.VertexService.IVertexService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- Per evitare di diffondere informazioni sui metadati, impostare il valore riportato sotto su false e rimuovere l'endpoint dei metadati riportato sopra prima della distribuzione -->
<serviceMetadata httpGetEnabled="true"/>
<!-- Per ricevere i dettagli sull'eccezione per scopi di debug in caso di guasti, impostare il valore riportato sotto su true. Impostarlo su false prima della distribuzione per evitare di diffondere informazioni sull'eccezione -->
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>

applicazione client:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IVertexService" 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="8192" 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://localhost:1450/VertexService.svc" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IVertexService" contract="VertexService.IVertexService"
name="BasicHttpBinding_IVertexService" />
</client>
</system.serviceModel>

come posso risolvere il problema? devo necessariamente comprimere il dataset o pacchettizzarlo?
come posso pacchettizzare il dataset ?

grazie!
Dott.
Dott.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5