Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 14933|Odpověď: 1

[ASP.NET] asp.net Soubor adresáře stránek je prázdný

[Kopírovat odkaz]
Zveřejněno 05.01.2018 16:18:49 | | | |
Nejprve vložte kód a získejte soubor adresáře webu, následovně:



Po spuštění této věty bude vyhozena výjimka, která říká, že objekt je prázdný, jak je znázorněno na obrázku níže:



Proč dostávám null?

Protože vlákno, které tento kód spouští, není aktuálním vláknem, které zpracovává aktuální požadavek

Proč to není null, když to dostaneš jinde?

Je to proto ASP.NET že program už před zavoláním kódu nastavil objekt HttpContext na vlastnost System.Runtime.Remoting.Messaging.CallCallContext.HostContext.

HttpApplication má interní metodu OnThreadEnter(), ASP. .NET volá tuto metodu k přepnutí HttpContext před vyvoláním externího kódu, například kdykoli je vykonán handler událostí pipeline, nebo když synchronizační kontext (AspNetSynchronizationContext) vykoná callback. Po přepnutí vlastnosti CallContext.HostContext vlákna může náš kód přistupovat k odkazu na HttpContext. Poznámka: Odkaz na HttpContext je ve skutečnosti uložen v objektu HttpApplication.



Jak v tomto případě získat absolutní cestu souboru?

Můžeme přistupovat k System.Web.HttpRuntime.AppDomainAppPath a získat kořenovou cestu programu, a poté spoj relativní cesty souboru





Předchozí:Úplné vysvětlení základní zranitelnosti procesorů Intel: Žádný mobilní telefon/počítač na světě není ušetřen
Další:Shrnutí metodologie tvorby instancí AutoFACu
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com