System.IO.Directory.Delete e scadenza sessione

0 visualizzazioni
Passa al primo messaggio da leggere

y

da leggere,
10 apr 2007, 13:21:4810/04/07
a
se eseguo le seguente operazione:
strPercorsoFileUpload = Request.ServerVariables.Item("APPL_PHYSICAL_PATH") &
"App_Data\attach\temp\11"
System.IO.Directory.Delete(strPercorsoFileUpload, True)

la sessione scade e mi perdo tutte le variabili session.
Suggerimenti?
Grazie
Davide


Alessandro Ghizzardi

da leggere,
10 apr 2007, 14:58:4510/04/07
a
Ciao,

> la sessione scade e mi perdo tutte le variabili session.
> Suggerimenti?


Umm ti rispondo con un'altra domanda anche se non è educato :P
Ma perchè devi scrivere proprio nella App_Data che è riservata alla base
dati? :)

Ciao
--
Alessandro
UGIdotNET - http://www.ugidotnet.org
Blog - http://blogs.ugidotnet.org/box
Site - http://www.unboxing.net (Under Construction)


y

da leggere,
11 apr 2007, 03:36:3911/04/07
a
"Alessandro Ghizzardi" <alessandro.levaks...@phaseit.com> ha
scritto nel messaggio news:%23NQy6H6...@TK2MSFTNGP05.phx.gbl...

> Ciao,
>
>> la sessione scade e mi perdo tutte le variabili session.
>> Suggerimenti?
>
>
> Umm ti rispondo con un'altra domanda anche se non è educato :P
> Ma perchè devi scrivere proprio nella App_Data che è riservata alla base
> dati? :)
Cioa, la domanda è perfetta invece!
Mi serve una directory che non risponda direttamente alle chiamate http,
invisibile al browser.
Ci conservo i file caricati dagli utenti che li possono recuperare solo
tramite una pagina protetta che glieli invia.
Vedi altre soluzioni?
Posso creare una directory con analoghe caratteristiche?
Ciao Davide


LoneHawk

da leggere,
11 apr 2007, 04:31:1411/04/07
a
On 11 Apr, 09:36, "y" <yNos...@tiscali.it> wrote:
> "Alessandro Ghizzardi" <alessandro.levaksto.ghizzardi.n...@phaseit.com> ha
> scritto nel messaggionews:%23NQy6H6...@TK2MSFTNGP05.phx.gbl...> Ciao,

>
> >> la sessione scade e mi perdo tutte le variabili session.
> >> Suggerimenti?
>
> > Umm ti rispondo con un'altra domanda anche se non è educato :P
> > Ma perchè devi scrivere proprio nella App_Data che è riservata alla base
> > dati? :)
>
> Cioa, la domanda è perfetta invece!
> Mi serve una directory che non risponda direttamente alle chiamate http,
> invisibile al browser.
> Ci conservo i file caricati dagli utenti che li possono recuperare solo
> tramite una pagina protetta che glieli invia.
> Vedi altre soluzioni?
> Posso creare una directory con analoghe caratteristiche?
> Ciao Davide

Se hai accesso alla configurazione di IIS direi proprio di sì :D
Oppure il tuo Space Provider dovrebbe avere una o più cartelle apposta
(ad esempio, Aruba ha la cartella mdb-database da cui l'utente web non
può leggere nulla).
Altra opzione possibile: salvare i file in campi DB, poi li estrai e
li rendi disponibili con Response.BinaryWrite...

Lone

Alessandro Ghizzardi

da leggere,
11 apr 2007, 04:39:4711/04/07
a
Ciao,

> Mi serve una directory che non risponda direttamente alle chiamate http,
> invisibile al browser.


Hem... beh te la crei :)
Se non puoi crearla, fai passare tutte le estensioni dal framework, per fare
in modo che ti rifiuti di servire un qualche tipo di documento se risponde a
certi standard (puoi creare un handler o un module)

Se invece sei in hosting da qualche parte, puoi controllare col tuo
provider, al 99,999% ha una cartella apposta per fare questo genere di
operazioni :)

Scrivere in una cartella come di sistema solo per evitare che l'utente la
legga non č un buon metodo :)

y

da leggere,
11 apr 2007, 04:43:3611/04/07
a
>"LoneHawk" <lone...@lonehawk.it> ha scritto nel messaggio
>news:1176280274....@y80g2000hsf.googlegroups.com...
Ho accesso completo, quindi ho provato su un'altra directory con i permessi
giusti .... succede ugualmente.
Mi perdo le variabili session se chiamo un delete o un move sulle directory
create da codice.
Davide


Alessandro Ghizzardi

da leggere,
11 apr 2007, 05:09:0411/04/07
a
> Mi perdo le variabili session se chiamo un delete o un move sulle
> directory create da codice.

Umm.. spe spe, ti ho perso..
Spiega un pò esattamente cosa intendi fare :)

y

da leggere,
11 apr 2007, 05:54:2511/04/07
a
"Alessandro Ghizzardi" <alessandro.levaks...@phaseit.com> ha
scritto nel messaggio news:%23KS$CjBfH...@TK2MSFTNGP05.phx.gbl...

>> Mi perdo le variabili session se chiamo un delete o un move sulle
>> directory create da codice.
>
> Umm.. spe spe, ti ho perso..
> Spiega un pò esattamente cosa intendi fare :)
Ciao Alessandro, grazie per la pazienza.
Ho seguito il tuo suggerimento: non lavoro più su App_Data.
Ho creato sulla root del sito una directory "attachIIS" che non può essere
vista dai browser.
Da codice (System.IO.Directory.CreateDirectory) creo una directory qui
dentro (supponiamo "Temp").
Quando cerco di spostare "Temp" (System.IO.Directory.Move) o rimuoverla
(System.IO.Directory.Delete) le variabili session vengono cancellate.

Scrivo il codice:
tre button , 1 crea la directory, 2 memorizza una session, 3 rimuove la dir,
al termine la session è cancellata. Cosa sbaglio?


Protected Sub Button1_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim strPercorsoFileUpload As String


strPercorsoFileUpload = Request.ServerVariables.Item("APPL_PHYSICAL_PATH") &

"attachIis\temp"
System.IO.Directory.CreateDirectory(strPercorsoFileUpload)
End Sub

Protected Sub Button2_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button2.Click
Session("test") = "www"
End Sub

Protected Sub Button3_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button3.Click
Dim strPercorsoFileUpload As String


strPercorsoFileUpload = Request.ServerVariables.Item("APPL_PHYSICAL_PATH") &

"attachIis\temp"
System.IO.Directory.Delete(strPercorsoFileUpload, True)
End Sub


Alessandro Ghizzardi

da leggere,
11 apr 2007, 10:24:5211/04/07
a
Ciao,

> Quando cerco di spostare "Temp" (System.IO.Directory.Move) o rimuoverla
> (System.IO.Directory.Delete) le variabili session vengono cancellate.

Stupendo! Ho provato ed... è vero!! :)
Questa cosa ti succede solo con l'F5?

Cmq ho visto che dopo la delete, l'applicazione viene proprio restartata (si
scatena l'application_end e riparte l'istanza quando si fa qualcos'altro!)

Credo che sia un problema del development server che controlla via codice
ogni modifica e vede la cancellazione di una directoy come un "cambiamento"
del codice...
Ma ti succede anche pubblciandolo sull'IIS? Come lo pubblichi?

y

da leggere,
11 apr 2007, 10:39:4611/04/07
a
"Alessandro Ghizzardi" <alessandro.levaks...@phaseit.com> ha
scritto nel messaggio news:uI5hhTEf...@TK2MSFTNGP03.phx.gbl...
Ciao Alessandro

> Stupendo! Ho provato ed... è vero!! :)
> Questa cosa ti succede solo con l'F5?
> Cmq ho visto che dopo la delete, l'applicazione viene proprio restartata
> (si scatena l'application_end e riparte l'istanza quando si fa
> qualcos'altro!)
> Credo che sia un problema del development server che controlla via codice
> ogni modifica e vede la cancellazione di una directoy come un
> "cambiamento" del codice...
> Ma ti succede anche pubblciandolo sull'IIS? Come lo pubblichi?
Bene non capita solo a me dunque :)
Mi succede sia in debug che no, sotto IIS5 su wxp pro, con IIS 6 con win
2003 server enterprise SP2, non cambia nulla se tolgo debug=true nel
web.config, a me sembra un comportamento veramente strano.
Grazie per il supporto :)
Davide

LoneHawk

da leggere,
11 apr 2007, 11:15:1911/04/07
a
On 11 Apr, 16:39, "y" <yNos...@tiscali.it> wrote:
> "Alessandro Ghizzardi" <alessandro.levaksto.ghizzardi.n...@phaseit.com> ha
> scritto nel messaggionews:uI5hhTEf...@TK2MSFTNGP03.phx.gbl...

Pazzesco! Io non ho fatto la prova perchè me la tenevo per stasera, ma
adesso ho capito!
Evidentemente IIS riavvia l'applicazione ogni volta che ne viene
modificata la struttura con una delete (strano, forse un bug?).
Mi chiedo se la stessa cosa succede anche con ASP 3.0, ma mi pare di
no, visto che avevo fatto un mini CMS per la mia fidanzata che si
basava sul filesystem e non avevo problemi con la sessione, in questo
caso.
Comunque, Davide, puoi provare a mettere la cartella fuori dal dominio
dell'applicazione (una cartella che non sia sotto la root
dell'applicazione, ancora meglio se non sotto la root di IIS)? Non
dovrebbe capitare più.

Facci sapere, che se è così è da aprire un bug a MicroSoft :D:D:D

Lone

Alessandro Ghizzardi

da leggere,
11 apr 2007, 11:21:5211/04/07
a
> Mi succede sia in debug che no, sotto IIS5 su wxp pro, con IIS 6 con win
> 2003 server enterprise SP2, non cambia nulla se tolgo debug=true nel
> web.config, a me sembra un comportamento veramente strano.

Splendido * 2....
Devo cospargermi il capo di cenere... non lo sapevo proprio, ma a quanto
pare è una Feature (bug???) voluta ...

Per quanto mi rembri ridicolo, _qualsiasi_ cambiamento all'interno
dell'alberatura di directory dell'applicazione, anche per directory non
applicative (quindi non "bin" o "app_qualcosa") causa un riciclo
dell'appDomain, ed ovviamente un'invalidazione della session...

Il workaround è ovviamente usare session out of process... ma quello che piu
mi preoccupa a questo punto è il riciclo di tutto l'appDomain (e, quindi, la
ripartenza del JIT).... rischia di uccidere le performance su siti
medio/grandi se non si fa una precompilazione....
sto pensando a tutte le mie applicazioni di Document Management che ho
scritto in 1.1.... possibile che non ci sia soluzione?

Da quello che leggo in giro
http://forums.asp.net/thread/1209642.aspx
http://weblogs.asp.net/owscott/archive/2006/02/21/438678.aspx
http://blogs.msdn.com/toddca/archive/2005/12/01/499144.aspx

Questa "Feature" non è disabilitabile in alcun modo....
Boh, cercherò meglio... nel frattempo grazie per la segnalazione, domani
finisce sul mio blog ;)

Alessandro Ghizzardi

da leggere,
11 apr 2007, 11:26:0811/04/07
a
Dimenticavo,

L'ultimo link che ho postato

> http://blogs.msdn.com/toddca/archive/2005/12/01/499144.aspx

Da una soluzione basata sulle Directory Junction di XP e 2003 per risolvere
il problema nel caso ti serva creare dei contenuti che siano visibili da Web
ma non vuoi ovviamente riciclare l'appdomain ogni volta che modifichi una
cartella...

E' una soluzione che non mi piace neanche un pò, continuerò a cercare anche
se dubito ce ne siano altre....

y

da leggere,
11 apr 2007, 11:30:4611/04/07
a
"LoneHawk" <lone...@lonehawk.it> ha scritto nel messaggio
news:1176304519....@q75g2000hsh.googlegroups.com...

On 11 Apr, 16:39, "y" <yNos...@tiscali.it> wrote:

-cut


>Comunque, Davide, puoi provare a mettere la cartella fuori dal dominio
>dell'applicazione (una cartella che non sia sotto la root
>dell'applicazione, ancora meglio se non sotto la root di IIS)? Non
>dovrebbe capitare più.

giusta intuizione, se la cartella è fuori non succede :)
Davide


y

da leggere,
11 apr 2007, 11:56:4611/04/07
a
"Alessandro Ghizzardi" <alessandro.levaks...@phaseit.com> ha
scritto nel messaggio news:%23ysNYzE...@TK2MSFTNGP06.phx.gbl...
-cut

> Questa "Feature" non è disabilitabile in alcun modo....
> Boh, cercherò meglio... nel frattempo grazie per la segnalazione,
prego :)
Per la mia webapp ho risolto lasciando le directory dove stanno e
semplicemente sposto o cancello i files contenuti e non ricicla nulla ;).
Ho verificato però sotto iis5 e 6 che se la directory è esterna a inetpub
(come suggerito da LoneHawk e da alcuni dei link che hai postato) posso
farci quello che voglio.
Ciao e grazie.
Davide

Alessandro Ghizzardi

da leggere,
11 apr 2007, 12:01:5711/04/07
a
Ciao,

> Ho verificato però sotto iis5 e 6 che se la directory è esterna a inetpub
> (come suggerito da LoneHawk e da alcuni dei link che hai postato) posso
> farci quello che voglio.

Eh si, ovviamente si...
Purtroppo però se io questi file che creo li devo vedere da web
dall'esterno, la dir non può essere fuori dall'application, dev'essere
almeno referenziata come virtualdirectory... e quindi mi si ricicla
l'appDomain...

Oppure si può usare linkd e litigare coi sistemisti per farlo... ma non ha
senso... men che meno con chi deve fare questa cosa con un hosting partner
tipo aruba...

boh, mi chiedo per quale motivo abbiano voluto questa "feature"....

LoneHawk

da leggere,
11 apr 2007, 13:48:4111/04/07
a
On 11 Apr, 18:01, "Alessandro Ghizzardi"

<alessandro.levaksto.ghizzardi.n...@phaseit.com> wrote:
>
> boh, mi chiedo per quale motivo abbiano voluto questa "feature"....
>

Mah, io sono convinto che una "feature" che non sia disattivabile (o
almeno la cui interfaccia di controllo non sia chiaramente esposta)
sia un bug... :P
Magari un prossimo Service Pack sistemerà anche questa cosa...
speriamo...

Lone

Alessandro Ghizzardi

da leggere,
11 apr 2007, 16:01:4811/04/07
a
Ciao,

> Mah, io sono convinto che una "feature" che non sia disattivabile (o
> almeno la cui interfaccia di controllo non sia chiaramente esposta)
> sia un bug... :P

Eheheh le virgolette infatti sono messe apposta :)
Cmq piu che il fatto che non č disattivabile o che l'interfaccia non č
esposta, mi preoccupa l'abisso che separa in questo senso ASP.NET 2.0 e
ASP.NET 1.1.... in 1.1 questa feature/bug non esisteva ed io mi immagino
quante applicazioni di gestione documentale smettono di funzionare o
funzionano decisamente piu lentamente (Se si pensa che ad ogni cartella mi
ricicla il processo... moltiplicato per 100 utenti... č piů il tempo che
passa a Jittare che altro!)

Non capisco come mai una cosa tanto eclatante non sia scritta a caratteri
cubitali, bug o meno che sia :)

Rispondi a tutti
Rispondi all'autore
Inoltra
0 nuovi messaggi