Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 14933|Odpowiedź: 1

[ASP.NET] asp.net Pobierz plik katalogu strony jest pusty

[Skopiuj link]
Opublikowano 05.01.2018 16:18:49 | | | |
Najpierw wklej kod, aby pobrać plik katalogu strony internetowej, w następujący sposób:



Po uruchomieniu tego zdania zostanie wyrzucony wyjątek, który stwierdzi, że obiekt jest pusty, jak pokazano na poniższym rysunku:



Dlaczego dostaję null?

Ponieważ wątek uruchamiający ten kod nie jest bieżącym wątkiem obsługującym bieżące żądanie

Dlaczego nie jest to null, skoro dostajesz go gdzie indziej?

Dzieje się tak ASP.NET ponieważ program już ustawił obiekt HttpContext na właściwość System.Runtime.Remoting.Messaging.CallContext.HostContext, o której wspomniałem wcześniej przed wywołaniem kodu.

HttpApplication posiada wewnętrzną metodę OnThreadEnter(), ASP. .NET wywołuje tę metodę, aby przełączyć HttpContext przed wywołaniem kodu zewnętrznego, na przykład za każdym razem, gdy wykonuje się obsługę zdarzeń potoku lub gdy kontekst synchronizacji (AspNetSynchronizationContext) wykonuje wywołanie zwrotne. Po zmianie właściwości CallContext.HostContext w wątku, nasz kod może uzyskać dostęp do referencji HttpContext. Uwaga: Odniesienie do HttpContext jest faktycznie zapisane w obiekcie HttpApplication.



Jak uzyskać absolutną ścieżkę pliku w tym przypadku?

Możemy uzyskać dostęp do System.Web.HttpRuntime.AppDomainAppPath, aby uzyskać ścieżkę główną programu, a następnie łączy względne ścieżki pliku





Poprzedni:Pełne wyjaśnienie podstawowej luki procesorów Intela: Żaden telefon komórkowy ani komputer na świecie nie zostaje oszczszczony
Następny:Podsumowanie metodologii tworzenia instancji autofac
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com