Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 14933|Odgovoriti: 1

[ASP.NET] asp.net Datoteka mape strani je prazna

[Kopiraj povezavo]
Objavljeno na 5. 01. 2018 16:18:49 | | | |
Najprej prilepite kodo, da dobite datoteko imenika spletne strani, kot sledi:



Po izvajanju tega stavka se vrže izjema, ki pravi, da je objekt prazen, kot je prikazano na spodnji sliki:



Zakaj dobim null?

Ker nit, ki izvaja to kodo, ni trenutna nit, ki obravnava trenutno zahtevo

Zakaj ni ničelna, če jo dobiš drugje?

To je zato, ker je ASP.NET program že nastavil objekt HttpContext na lastnost System.Runtime.Redáling.Messaging.CallContext.HostContext, omenjeno prej pred klicem vaše kode.

HttpApplication ima notranjo metodo OnThreadEnter(), ASP. .NET kliče to metodo za preklapljanje HttpContexta pred klicem zunanje kode, na primer kadar se izvaja obravnava dogodkov cevovoda ali ko sinhronizacijski kontekst (AspNetSynchronizationContext) izvede povratni klic. Po zamenjavi lastnosti CallContext.HostContext v niti lahko naša koda dostopa do reference HttpContext. Opomba: Referenca na HttpContext je dejansko shranjena v objektu HttpApplication.



Kako v tem primeru dobiti absolutno pot datoteke?

Dostopamo do System.Web.HttpRuntime.AppDomainAppPath in dobimo korensko pot programa, in nato spoji relativne poti datoteke





Prejšnji:Popolna razlaga osnovne ranljivosti Intelovih procesorjev: Noben mobilni telefon/računalnik na svetu ni prihranjen
Naslednji:Povzetek metodologije ustvarjanja instanc avtofaksa
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com