Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 14933|Svar: 1

[ASP.NET] asp.net Get site directory-filen er tom

[Kopier link]
Opslået på 05/01/2018 16.18.49 | | | |
Indsæt først koden for at hente websitekatalogfilen, som følger:



Efter at have kørt denne sætning vil der blive kastet en undtagelse, der siger, at objektet er tomt, som vist i figuren nedenfor:



Hvorfor får jeg null?

Fordi tråden, der kører denne kode, ikke er den nuværende tråd, der håndterer den aktuelle forespørgsel

Hvorfor er det ikke ugyldigt, når du får det et andet sted?

Dette skyldes, at ASP.NET program allerede har sat HttpContext-objektet til System.Runtime.Remoting.Messaging.CallContext.HostContext-egenskaben, som nævnt tidligere, før det kalder din kode.

HttpApplication har en intern metode, OnThreadEnter(), ASP. .NET kalder denne metode for at skifte HttpContext, før ekstern kode kaldes, for eksempel når pipelinens event handler udføres, eller når synkroniseringskonteksten (AspNetSynchronizationContext) udfører et callback. Efter at have skiftet trådens CallContext.HostContext-egenskab, kan vores kode få adgang til HttpContext-referencen. Bemærk: Henvisningen til HttpContext gemmes faktisk i HttpApplication-objektet.



Hvordan får man den absolutte sti for filen i dette tilfælde?

Vi kan få adgang til System.Web.HttpRuntime.AppDomainAppPath for at få programmets rodsti, og derefter splejser filens relative stier





Tidligere:Fuldstændig forklaring af den underliggende sårbarhed ved Intel-CPU'er: Ingen mobiltelefon/computer i verden bliver skånet
Næste:Resumé af autofac-oprettelsesmetodologien
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com