Ho un bug strano, intermittente che sta accadendo su un server web.
Uno dei metodi attiva la creazione di un piccolo file (3kb), in una cartella. La cartella si basa sull'anno corrente, sul mese e sull'ID posizione.
Il file viene creato da un componente di terze parti su cui non ho alcun controllo, tranne che chiamando il suo metodo CreateImage()
.
Gli sviluppatori di questo componente hanno confermato che consegnano la creazione del file al sistema operativo e quindi restituiscono senza verificare se la creazione è avvenuta. (Nizza).
Quello che proviamo a fare è aprire questo file e scrivere su di esso un codice di autorizzazione specifico. Tuttavia, occasionalmente i file di registro stanno recuperando un System.ArgumentException: Parameter is not valid
quando chiamo Bitmap bmpImage = new Bitmap(filename);
In base a MSDN, questa eccezione indica che il file non è un file immagine o che non è effettivamente lì.
Non posso influenzare il componente di terze parti, ma sono abbastanza sicuro che l'esecuzione di una FileSystemWatcher
su un processo di un sito Web non lo taglierà, né c'è alcun tipo di chiamata di blocco in cui aspetto un importo sconosciuto di tempo per il file da creare. L'unica altra soluzione che mi viene in mente è quella di controllare se il file è lì, in caso contrario, controllare dopo un secondo e poi una terza volta. Se dopotutto non è presente, lanciare un'eccezione. Ma sembra più una "raffica" che una correzione.
Non posso mettere queste creazioni e alterazioni di immagine in una sorta di coda o altro processo, poiché l'immagine aggiornata viene visualizzata all'utente nella pagina successiva.
Ho perso qualche ovvia soluzione al mio problema qui, prima di dover tornare indietro e provare a re-inventare l'intero processo (che sembra eccessivo per forse 1 su 500) causando un problema?