Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 14933|Svar: 1

[ASP.NET] asp.net Hämta webbplatskatalogfilen är tom

[Kopiera länk]
Publicerad på 2018-01-05 16:18:49 | | | |
Först klistra in koden för att hämta webbplatskatalogen, enligt följande:



Efter att ha kört denna mening kommer ett undantag att kastas som säger att objektet är tomt, som visas i figuren nedan:



Varför blir jag null?

Eftersom tråden som kör denna kod inte är den nuvarande tråden som hanterar den aktuella förfrågan

Varför är det inte ogiltigt när du får det någon annanstans?

Detta beror på att ASP.NET program redan har satt HttpContext-objektet till egenskapen System.Runtime.Remoting.Messaging.CallContext.HostContext som nämndes tidigare innan det anropade din kod.

HttpApplication har en intern metod OnThreadEnter(), ASP. .NET anropar denna metod för att byta HttpContext innan extern kod anropas, till exempel när pipelinens händelsehanterare körs eller när synkroniseringskontexten (AspNetSynchronizationContext) utför en callback. Efter att ha bytt trådens egenskap CallContext.HostContext kan vår kod komma åt HttpContext-referensen. Notera: Referensen till HttpContext sparas faktiskt i HttpApplication-objektet.



Hur får man den absoluta vägen för filen i det här fallet?

Vi kan komma åt System.Web.HttpRuntime.AppDomainAppPath för att få programmets rotväg, och sedan skarvar filens relativa vägar





Föregående:Fullständig förklaring av Intel-CPU:ernas underliggande sårbarhet: Ingen mobiltelefon/dator i världen skonas
Nästa:Sammanfattning av autofac-skapandeinstansmetodiken
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com