91 messaggi dal 16 novembre 2004
Ciao a tutti ho creato una WEBAPI che restituisce un immagine così:

Dim wc As New WebClient()
Dim bytes As Byte() = wc.DownloadData(strPath)
Dim result As New HttpResponseMessage(HttpStatusCode.OK)
Using ms As New MemoryStream(bytes)
result.Content = New ByteArrayContent(ms.ToArray())
result.Content.Headers.ContentType = New MediaTypeHeaderValue("image/png")
End Using
Return result

quando da un app Windows 8.1 chiamo questa api in batch per circa 1000 volte ricevo risposta solo per le prime 140 volte poi il tutto si ferma.
Se metto uno sleep e gestisco una chiamata ogni 1 secondo tutto funziona.
Ovviamente non posso aspettare un secondo per ogni chiamata.
Qualcuno mi sa aiutare?

Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
spiega come mai recuperi l'immagine usando un WebClient. Per caso si trova su un altro server rispetto a quello che ospita la WebApi?
L'immagine è uguale per tutte le 1000 richieste oppure va generata al volo in base a degli argomenti che passi volta per volta, sempre diversi?

ciao,
Moreno
Modificato da BrightSoul il 14 ottobre 2014 21.42 -

Enjoy learning and just keep making
91 messaggi dal 16 novembre 2004
Ciao, si utilizzo un webclient perché è su un altro server, fosse stata sullo stesso server quale sarebbe la strada migliore?
Le immagini sono diverse si tratta di immagini di prodotti diversi.

Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
se queste immagini sono pubblicamente accessibili da internet, credo che ti convenga subito reindirizzare il client verso il loro percorso. E' inutile starle a scaricare sul tuo server per poi reinviarle al client.

Esempio:
public IHttpActionResult Immagine(int idProdotto)
{
    return Redirect("http://www.altroserver.com/immagini/" + idProdotto.ToString() + ".jpg");
}


Se invece quelle immagini non sono pubbliche ma hai bisogno di autorizzare l'accesso, allora dobbiamo trovare altre soluzioni.

a2piazza ha scritto:

fosse stata sullo stesso server quale sarebbe la strada migliore

Oltre a fare un redirect anche in questo caso, probabilmente potresti restituire un HttpResponseMessage che abbia come contenuto uno StreamContent (lo stream è quello che ottieni da un File.Open).

ciao,
Moreno
Modificato da BrightSoul il 14 ottobre 2014 22.24 -

Enjoy learning and just keep making
91 messaggi dal 16 novembre 2004
Grazie, ci ragiono e poi ti aggiorno.

Alberto

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.