Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 14933|Atsakyti: 1

[ASP.NET] asp.net Gauti svetainės katalogo failą tuščias

[Kopijuoti nuorodą]
Paskelbta 2018-01-05 16:18:49 | | | |
Pirmiausia įklijuokite kodą, kad gautumėte svetainės katalogo failą, kaip nurodyta toliau:



Paleidus šį sakinį, bus padaryta išimtis, kad objektas tuščias, kaip parodyta paveikslėlyje žemiau:



Kodėl gaunu nulį?

Kadangi gija, kurioje veikia šis kodas, nėra dabartinė gija, kuri apdoroja dabartinę užklausą

Kodėl jis nėra niekinis, kai jį gaunate kitur?

Taip yra todėl ASP.NET kad prieš iškviesdama kodą programa jau nustatė objektą HttpContext į anksčiau minėtą ypatybę System.Runtime.Remoting.Messaging.CallContext.HostContext.

HttpApplication turi vidinį metodą OnThreadEnter(), ASP. .NET iškviečia šį metodą, kad perjungtų HttpContext prieš iškviečiant išorinį kodą, pvz., kai vykdoma srauto įvykių apdorojimo programa arba kai sinchronizavimo kontekstas (AspNetSynchronizationContext) vykdo atgalinį iškvietimą. Perjungus gijos ypatybę CallContext.HostContext, mūsų kodas gali pasiekti HttpContext nuorodą. Pastaba: Nuoroda į HttpContext iš tikrųjų įrašoma HttpApplication objekte.



Kaip tokiu atveju gauti absoliutų failo kelią?

Galime pasiekti System.Web.HttpRuntime.AppDomainAppPath, kad gautume programos šakninį kelią, tada sujungti santykinius failo kelius





Ankstesnis:Išsamus "Intel" procesorių pažeidžiamumo paaiškinimas: Nė vienas mobilusis telefonas / kompiuteris pasaulyje nėra taupomas
Kitą:Autofac kūrimo egzemplioriaus metodikos santrauka
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com