Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 14933|Risposta: 1

[ASP.NET] asp.net Il file della directory Get Site è vuoto

[Copiato link]
Pubblicato su 05/01/2018 16:18:49 | | | |
Per prima cosa, incolla il codice per ottenere il file della directory del sito web, come segue:



Dopo aver eseguito questa frase, verrà lanciata un'eccezione che indica che l'oggetto è vuoto, come mostrato nella figura sottostante:



Perché mi viene nullo?

Perché il thread che esegue questo codice non è il thread corrente che gestisce la richiesta corrente

Perché non è nulla quando la trovi altrove?

Questo perché ASP.NET programma ha già impostato l'oggetto HttpContext sulla proprietà System.Runtime.Remoting.Messaging.CallContext.HostContext menzionata prima di chiamare il tuo codice.

HttpApplication ha un metodo interno OnThreadEnter(), ASP. .NET chiama questo metodo per commutare l'HttpContext prima di chiamare codice esterno, ad esempio ogni volta che viene eseguito il gestore di eventi della pipeline, o quando il contesto di sincronizzazione (AspNetSynchronizationContext) esegue un callback. Dopo aver cambiato la proprietà CallContext.HostContext del thread, il nostro codice può accedere al riferimento HttpContext. Nota: Il riferimento all'HttpContext è in realtà salvato nell'oggetto HttpApplication.



Come ottenere il percorso assoluto del file in questo caso?

Possiamo accedere a System.Web.HttpRuntime.AppAppDomainAppPath per ottenere il percorso root del programma, e poi slega i percorsi relativi del file





Precedente:Spiegazione completa della vulnerabilità sottostante delle CPU Intel: Nessun telefono o computer al mondo è risparmiato
Prossimo:Riepilogo della metodologia di creazione di istanze autofac
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com