Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 14933|Отговор: 1

[ASP.NET] asp.net Файлът с директорията на сайта е празен

[Копирай линк]
Публикувано в 5.01.2018 г. 16:18:49 ч. | | | |
Първо, поставете кода, за да получите файловата директория на уебсайта, както следва:



След изпълнение на това изречение ще се появи изключение, което казва, че обектът е празен, както е показано на фигурата по-долу:



Защо получавам null?

Защото нишката, която изпълнява този код, не е текущата нишка, която обработва текущата заявка

Защо не е нулев, когато го вземеш другаде?

Това е така, защото ASP.NET програма вече е задала обекта HttpContext на свойството System.Runtime.Remoting.Messaging.CallContext.HostContext, споменато по-рано, преди да извика вашия код.

HttpApplication има вътрешен метод OnThreadEnter(), ASP. .NET извиква този метод, за да превключи HttpContext преди да извикне външен код, например когато се изпълнява обработващият обработчик на събития в конвейера или когато контекстът на синхронизация (AspNetSynchronizationContext) изпълнява обратно извикване. След смяна на свойството CallContext.HostContext на нишката, нашият код може да достъпи HttpContext референцията. Забележка: Препратката към HttpContext всъщност се запазва в обекта HttpApplication.



Как да получа абсолютния път на файла в този случай?

Можем да достъпим System.Web.HttpRuntime.AppDomainAppPath, за да получим основния път на програмата, и след това сплита относителните пътища на файла





Предишен:Пълно обяснение на основната уязвимост на процесорите Intel: Нито един мобилен телефон/компютър в света не е пощаден
Следващ:Обобщение на методологията за създаване на autofac instance
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com