234 messaggi dal 08 marzo 2012
BrightSoul ha scritto:


Tieni a mente che i file scritti localmente li perdi al riavvio dell'applicazione ma non è molto importante in questo caso, perché tu quei file (gli assembly, intendo) li puoi riottenere in qualsiasi momento dal Blob Storage.
o


Sono riuscito a scaricare le DLL sulla cartella locale dell'App Service di Azure ma il comportamento strano è che dopo la prima esecuzione mi dice di non riuscire ad accedere all'assembly in quanto risulta essere in utilizzo.
All'interno della DLL non faccio nulla di particolare, ovvero non istanzio oggetti che rimangono poi "appesi".

Come mai succede questa cosa? Idee?
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
hai caricato gli assembly in un altro AppDomain? Se sì, hai fatto l'unload dell'AppDomain al termine dell'utilizzo?
https://docs.microsoft.com/it-it/dotnet/framework/app-domains/how-to-unload-an-application-domain

ciao,
Moreno

Enjoy learning and just keep making
234 messaggi dal 08 marzo 2012
Non so se sbaglio io qualcosa ma se su Azure App Service provo a creare un secondo AppDomain mi da errore dicendomi che non posso crearlo.

Nello specifico mi da questo errore:

"System.PlatformNotSupportedException: Secondary AppDomains are not supported on this platform.
at System.AppDomain.CreateDomain(String friendlyName)"

Leggendo un po' in giro sembra che .NET Core non supporti i secondary app domain...vero???


Quindi i test al momento li ho fatti nell'AppDomain principale.

Come posso su Azure creare correttamente un secondo AppDomain?
Devo configurare qualche impostazione particolare o abilitare qualche feature?

Grazie!
Modificato da evil80 il 13 ottobre 2019 16:49 -
234 messaggi dal 08 marzo 2012
evil80 ha scritto:

"System.PlatformNotSupportedException: Secondary AppDomains are not supported on this platform.
at System.AppDomain.CreateDomain(String friendlyName)"


Documentandomi un po' si chiede di utilizzare "AssemblyLoadContext" in .NET Core 3.0 che dovrebbe assolvere più o meno allo stesso scopo di un'AppDomain.
Così facendo effettivamente tutto funziona e non ho neanche difficoltà a passare i parametri.

Ti torna?
Posso considerare che la classe "AssemblyLoadContext" effettivamente mi isola il codice in un altro contesto tenendolo separato e quindi mettendo il mio contesto al sicuro?
Dopo aver eseguito il codice della DLL faccio l'unload, metodo offerto sempre dalla classe "AssemblyLoadContext".

Grazie!
234 messaggi dal 08 marzo 2012
Ciao

nessuno ha conferme in merito alla classe AssemblyLoadContext?

Permette di isolare il codice al pari di un'AppDomain che su .NET CORE non sono utilizzabili?

Grazie!
Modificato da evil80 il 16 ottobre 2019 08:27 -
Modificato da evil80 il 16 ottobre 2019 08:28 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
sì, è scritto qui:


Ability to load assemblies explicitly in a context isolated from that of the application.


Nel tuo caso, dato che devi scaricarlo, usa il costruttore che accetta il booleano isCollectible, e passagli true. È disponibile da .NET Core 3.0.
https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Loader/ref/System.Runtime.Loader.cs#L27

Eccolo spiegato qui:
https://www.strathweb.com/2019/01/collectible-assemblies-in-net-core-3-0/

ciao,
Moreno

Enjoy learning and just keep making

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.