4 messaggi dal 26 febbraio 2009
Ciao a tutti,

ho un progetto SL in cui il file XAP è integrato su un file HTML.

1° problema come si fa a far aggiornare al browser il file xap se volessi che all'utente fosse aggiornato SOLO e SOLTANTO quando aggiorno la versione nel file AssemblyInfo. Come si fa?

2° problema ho un file di log xml aggiornato continuamente dal server di hosting, questo file viene poi visualizzato nel progetto SL .. ma non si aggiorna se non svuoto i file temporanei (rimane in cache) utilizzo il seguente codice:

Dim wc As WebClient = New WebClient()

AddHandler wc.OpenReadCompleted, AddressOf wc_OpenReadCompleted

Dim URLserver As String = "http://www.mydomain.com/"
wc.OpenReadAsync(New Uri(URLserver & "log/database.xml", UriKind.RelativeOrAbsolute))

se io punto con l'URI sul mio server perchè lui legge dalla cache??

Tutti i suggerimenti sono Graditi
Grazie Marcello

«Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi.»

Albert Einstein
2.190 messaggi dal 04 marzo 2004
Contributi | Blog
"quattromori" wrote in message
Ciao a tutti,
Ciao,
ho un progetto SL in cui il file XAP è integrato su un file HTML.
1° problema come si fa a far aggiornare al browser il file xap se volessi che all'utente fosse aggiornato *SOLO e SOLTANTO quando aggiorno la versione nel file AssemblyInfo*. Come si fa?
Non conosco l'esistenza di un processo automatico, penso che tu debba sviluppare un tuo pattern pubblicando più XAP con il nome di versione e gestire con un HttpHandler quale file fare usare ai client.

2° problema ho un file di log xml aggiornato continuamente dal server di hosting, questo file viene poi visualizzato nel progetto SL .. ma non si aggiorna se non svuoto i file temporanei (rimane in cache) utilizzo il seguente codice:

Dim wc As WebClient = New WebClient()

AddHandler wc.OpenReadCompleted, AddressOf wc_OpenReadCompleted
Dim URLserver As String = "http://www.mydomain.com/"
wc.OpenReadAsync(New Uri(URLserver & "log/database.xml",
UriKind.RelativeOrAbsolute))

se io punto con l'URI sul mio server perchè lui legge dalla cache??
Perchè tutti i file passano sempre dalle policy della cache del browser, che può non invalidare la versione del file anche se questo è stato aggiornato. Una delle soluzioni più semplici è accodare all'uri un codice casuale: Dim URLserver As String = String.Format("{0}log/database.xml?rnd={1}", URLserver ,Rand.Next(1, 100))

Tutti i suggerimenti sono Graditi
Grazie Marcello
Prego, spero ti sia di aiuto.

Alessio Leoncini (WinRTItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer
4 messaggi dal 26 febbraio 2009
Ciao Alessio,
grazie per il tuo contributo, il secondo problema è risolto, un modo intelligente per raggirare l'ostacolo , usare un numero casuale come falso post non preclude la path. Pensavo sbagliassi io qualcosa, mi sembra strano che Microsoft non abbia pensato a prevedere, che se leggo un file da server non può essere messo in cache, almeno lo doveva rendere gestibile.
MAH... anche perchè cosi accumulo in cache file obsoleti soprattuto se come in questo caso sono di parecchi mega.

Ci deve essere un modo un file XAP puo essere di diversi mega e sarebbe plausibile che solo quando io aggiorno la versione venga rilevato dal browser la nuova versione. Oltre tutto se il vecchio XAP ha un bug diventa un problema serio.
Avevo pensato ad anteporre alla mia pagina un path che cambiava se veniva rilevata una nuova versione di file XAP.
Esempio:
"http://www.miodominio.it/VER200901/default.html" che contiene la versione 1

"http://www.miodominio.it/VER200902/default.html" che contiene la versione 2

cioe significherebbe agire in modo dinamico sulle IIS mediante script.

Ma anche questo non funziona perchè lui memorizza in cache l'applicazione SL associandola al dominio, quindi anche se cambio il documento di default sul server di hosting NON CAMBIA UNA MAZZA a meno che inserisco del codice sulla mie pagine per lo svuotamento della cache del browser ma questo impone che ogni visitatore ad ogni sessione ricarichi il file XAP .. un po triste questo..
Comunque per concludere mi sembra strano che MSFT non abbia previsto una cosa così ovvia sulla gestione della cache dei plugin SL. SONO ALLIBITO.
Spero che la versione 3 di silverlight metta un pò d' ordine.


Ciao Marcello
Modificato da quattromori il 08 marzo 2009 11.36 -

«Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi.»

Albert Einstein

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.