이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 14933|회답: 1

[ASP.NET] asp.net 사이트 디렉토리 가져오기 파일 빈 상태입니다

[링크 복사]
게시됨 2018. 1. 5. 오후 4:18:49 | | | |
먼저, 코드를 붙여넣어 웹사이트 디렉터리 파일을 얻으세요, 다음과 같습니다:



이 문장을 실행한 후, 객체가 비어 있다는 예외가 던져지며, 아래 그림과 같이 나타납니다:



왜 내가 널이 되는 걸까요?

이 코드를 실행하는 스레드는 현재 요청을 처리하는 스레드가 아니기 때문입니다

다른 곳에서 얻었는데 왜 무효가 아닌가요?

이는 프로그램이 이미 HttpContext 객체를 앞서 언급한 System.Runtime.Remoting.Messaging.CallContext.HostContext 속성으로 설정한 ASP.NET 때문입니다.

HttpApplication에는 내부 메서드 OnThreadEnter(), ASP가 있습니다. .NET은 이 메서드를 호출하여 외부 코드를 호출하기 전에 HttpContext를 전환합니다. 예를 들어, 파이프라인의 이벤트 핸들러가 실행될 때나 동기화 컨텍스트(AspNetSynchronizationContext)가 콜백을 실행할 때 그렇습니다. 스레드의 CallContext.HostContext 속성을 전환한 후, 우리 코드는 HttpContext 참조에 접근할 수 있습니다. 참고: HttpContext에 대한 참조는 실제로 HttpApplication 객체에 저장됩니다.



이 경우 파일의 절대 경로를 어떻게 얻을 수 있나요?

System.Web.HttpRuntime.AppDomainAppPath에 접속해 프로그램의 루트 경로를 얻을 수 있습니다, 그리고 파일의 상대 경로를 스플라이스합니다





이전의:인텔 CPU의 근본 취약점에 대한 완전한 설명: 전 세계 어떤 휴대전화/컴퓨터도 예외가 아닙니다
다음:autofac 생성 인스턴스 방법론 요약
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com