Trasferimento BLOB tramite ADO.NET Data Services

Durante l’utilizzo di ADO.NET Data Services vi capiterà sicuramente di dover salvare imamgini o documenti nel database. Se la loro dimensione è superiorer a 64Kb dovete configurare manualmente i parametri dell’host del servizio.

In giro su internet ci sono moltissimi blog che spiegano come farlo, però c’è una nota importantissima da tenere a mente per evitare di perdere ore e ore (o giorni e giorni) inutilmente.

Un esempio tipico di web.config è il seguente:

   1: <system.serviceModel>
   2:   <services>
   3:     <service 
   4:       name="Bolt.DataService.BoltData">
   5:       <endpoint binding="webHttpBinding" contract="System.Data.Services.IRequestHandler"
   6:         bindingConfiguration="webBinding" >
   7:       </endpoint>
   8:     </service>
   9:   </services>
  10:   <bindings>
  11:     <webHttpBinding>
  12:       <binding name="webBinding" maxBufferSize="152428800" maxReceivedMessageSize="152428800" receiveTimeout="00:10:00">
  13:         <readerQuotas maxStringContentLength="152428800" maxArrayLength="152428800" maxBytesPerRead="4096" />
  14:       </binding>
  15:     </webHttpBinding>
  16:   </bindings>
  17:   <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
  18: </system.serviceModel>

la cosa importante è che il name del service (sopra “Bolt.DataService.BoltData”) dev’essere il nome della classe esposta nel .svc con il namespace, altrimenti le modifiche non vengono applicate al servizio e non viene segnalato alcun errore a riguardo.