Contesto esecutivo: attenzione alle funzioni!

Ho appena corretto un problema molto subdolo che ci capitava solo in server session e solo in certi casi.
Abbiamo un componente di terze parti per creare i PDF, interfacciato alla nostra applicazione tramite una DLL scritta in C#
Fino adesso non l’abbiamo mai usato in server session, ma avendo la necessità di creare una procedura pianificata (che appunto gira in server session) siamo incappati nel seguente problema: per ricavare i percorsi utilizzavamo la funzionalità System.Web.HttpContext.Current.Server.MapPath('~\\percorso\\virtuale\\file.ext')

Il problema, che leggendo bene è indicato anche nella guida ( HttpContext Class (System.Web) | Microsoft Learn), è che in sessioni background HttpContext ha un comportamento non definito.

Abbiamo quindi sostituito la funzionalità con System.Web.Hosting.HostingEnvironment.MapPath('~\\percorso\\virtuale\\file.ext') che fa praticamente la stessa cosa e HostingEnvironment è sempre disponibile.

Spero sia utile a chi dovesse incappare nello stesso problema e non ce ne saltasse fuori.

4 Mi Piace

@d.termini grazie della condivisione, in server session occorre sempre ricordarsi che il contesto nel quale è in esecuzione l’applicazione è leggermente diverso mancando il browser.

1 Mi Piace