문제

다음과 같이 2 개의 파일이있는 웹 사이트가 있습니다.

  • page.aspx
  • page.aspx.cs

예전에는 새 파일을 웹 서버에 삭제할 수 있었으며 IIS는 파일을 자동으로 컴파일하고 페이지에 액세스 할 수있었습니다.

http://www.website.com/page.aspx

... 그리고 .cs 파일에 포함 된 페이지 클래스의 관련 기능이 잘 작동합니다.

이제 오류가 발생합니다. "내 페이지 클래스를 나타내는"Namespace.classname 유형을로드 할 수 없습니다 ".

이제 이상한 이유 때문에 모든 .CS 파일, 심지어 페이지 클래스를 APP_Code 폴더에 넣어야합니다.

내 웹 사이트에서 변경된 모든 것은 내 페이지가 웹 루트에있는 대신 내부에있는 구조를 재구성했다는 것입니다. http : //.../newfolder/page.aspx.

어떤 이유로 든 내 모든 page.aspx.cs 파일은 이제 app_code에 있어야합니다.

어떤 아이디어?

도움이 되었습니까?

해결책

웹 응용 프로그램 프로젝트와 웹 사이트를 혼합하는 것처럼 들립니다.

파일이 정확히 동일하다고 확신합니까? 아마도 하나의 @page 지시문은 codebehind = page.aspx.cs라고 말하고 다른 하나는 codefile = page.aspx.cs라고 말합니까?

CodeBehind에는 프로젝트 컴파일이 필요하므로 새 .CS 파일을 삭제할 수 없으므로 새 컴파일 된 DLL을 업로드해야합니다. CodeFile은 동적 컴파일을 허용합니다.

APP_Code 디렉토리는 앱에 액세스 할 때 동적으로 컴파일되므로 상속 지시문에는 파일을 넣을 때 유효한 유형이 있습니다. 일반적으로 이것을하지 마십시오. .cs 파일이 .aspx 파일과 함께 가려고합니다. 특정 페이지와 관련이없는 비즈니스 로직 또는 유틸리티 클래스에 App_Code를 사용하십시오.

마지막 으로이 새로운 하위 디렉토리가 IIS의 새로운 앱으로 설정되어 있습니까? 새 디렉토리의 Web.Config 파일은 무엇입니까? 동일한 버전의 asp.net을 실행하고 있습니까? "컴파일"태그를 확인하십시오. 나는 당신이 이것을 일으키기 위해 거기에서 무엇을 할 수 있는지 잘 모르겠지만, 당신이 약간 혼돈.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top