Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 14933|Odpoveď: 1

[ASP.NET] asp.net Súbor adresára stránky je prázdny

[Kopírovať odkaz]
Zverejnené 5. 1. 2018 16:18:49 | | | |
Najprv vložte kód, aby ste získali súbor adresára webu, nasledovne:



Po spustení tejto vety sa vyhodí výnimka, že objekt je prázdny, ako je znázornené na obrázku nižšie:



Prečo dostávam null?

Pretože vlákno, ktoré spúšťa tento kód, nie je aktuálne vlákno, ktoré spracováva aktuálnu požiadavku

Prečo to nie je null, keď to získate inde?

Je to preto, že ASP.NET program už nastavil objekt HttpContext na vlastnosť System.Runtime.Remoting.Messaging.CallContext.HostContext spomenutú skôr pred zavolaním vášho kódu.

HttpApplication má internú metódu OnThreadEnter(), ASP. .NET volá túto metódu na prepínanie HttpContext pred zavolaním externého kódu, napríklad vždy, keď sa spustí obslužný modul udalostí pipeline alebo keď synchronizačný kontext (AspNetSynchronizationContext) vykoná spätné volanie. Po zmene vlastnosti CallContext.HostContext vo vlákne môže náš kód pristupovať k referencii HttpContext. Poznámka: Odkaz na HttpContext je v skutočnosti uložený v objekte HttpApplication.



Ako získať absolútnu cestu súboru v tomto prípade?

Môžeme pristupovať k System.Web.HttpRuntime.AppDomainAppPath a získať koreňovú cestu programu, a potom spojiť relatívne cesty súboru





Predchádzajúci:Úplné vysvetlenie základnej zraniteľnosti procesorov Intel: Žiadny mobilný telefón/počítač na svete nie je ušetrený
Budúci:Zhrnutie metodológie vytvárania inštancií autofac
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com