파서 오류 메시지 : 'TestMvcApplication.MvcApplication'유형을로드 할 수 없습니다


152

프로덕션 서버 중 하나에서 다음 오류가 발생합니다. 왜 DEV 서버에서 작동하는지 확실하지 않습니까?

구문 분석기 오류 설명 :이 요청을 처리하는 데 필요한 자원을 구문 분석하는 중에 오류가 발생했습니다. 다음 특정 구문 분석 오류 세부 사항을 검토하고 소스 파일을 적절하게 수정하십시오.

파서 오류 메시지 : 'TestMvcApplication.MvcApplication'유형을로드 할 수 없습니다.

소스 오류 :

1 행 : <% @ 응용 프로그램 Codebehind = "Global.asax.cs"상속 = "TestMvcApplication.MvcApplication"Language = "C #"%>

소스 파일 : /global.asax 줄 : 1

아무도이 오류가 발생하고 어떻게 해결되었는지 확실하지 않지만 끝까지 도달했습니다. 도움을 주시면 감사하겠습니다.

또한 이것이 게시 된 코드임을 언급해야하므로 모든 것이 컴파일됩니다. 컴파일러 설정에 문제가있을 수 있습니까?



15
Visual Studio를 종료하고 다시 시작하십시오.
RickAndMSFT

global.asax 파일을 삭제하고 새 파일을 추가하면 괜찮습니다.
DotNetGeek

이전에 작동했던 응용 프로그램을 배포 할 때 이런 일이 발생했습니다. IIS의 어떤 것 (7)은 나쁜 상태에 빠졌습니다. IIS를 재설정하면 문제가 해결되었습니다.
BurnsBA

답변:


169

다른 답변들 중 어느 것도 나를 위해 일하지 않았습니다. 웹 프로젝트의 출력 경로를 변경하여 오류를 수정했습니다. bin \ debug로 설정했지만 출력 경로가 단순히 "bin"으로 설정되어 있지 않으면 웹 프로젝트가 작동하지 않습니다.


이것은 내 문제 였고, 여기에 다른 솔루션이 없었기 때문에 슬픔을 일으켰다.
Zack

3
+1 이것은 나의 문제이기도했다. 오류 메시지와 이에 대한 도움말은 기본적으로 존재하지 않습니다. 감사.
Noldorin

4
나를 위해 bin \에서 오류가 발생했습니다. bin으로 만 변경했습니다. 그리고 효과가있었습니다.
Nanu

1
나에게 문제는 실수로 x86을 활성 플랫폼으로 선택했기 때문에이 구성의 경우 프로젝트 설정이 잘못되었습니다 (Bin \ Debug \ x86). 모든 CPU로 다시 변경하면 문제가 해결되었습니다. 그러나 출력 경로를 변경해도 효과가 있습니다.
Lars Udengaard

13
따라서 출력 경로를 bin \ Debug \에서 bin으로 변경하면 오류가 제거됩니다. 그러나 실제 질문은 "왜 bin \ Debug가 처음부터 작동하지 않습니까?"입니다. 디버그 또는 릴리스 구성을 빌드 할 때 적절한 bin 디렉토리에 파일이 생성되기를 원합니다.
Ellesedil

96

나는 이것을 몇 번 가지고 있었다. 방망이로 인해 특히 실망 스럽습니다. 오류 메시지는 문제가 무엇인지에 대한 단서가 없습니다.

이 문제를 해결하려면 프로젝트 제목 (이 경우 "TestMvcApplication")을 마우스 오른쪽 단추로 클릭하고 빌드를 클릭하십시오 .

이렇게하면 코드를 실행하기 전에 강제로 컴파일됩니다. 왜 그런지 묻지 마라. 그러나 이것은 100 % 해결책이었다.


4
나도 +1 그리고 나는 많은 것들을 시도했고, "것들"에 의해 "야생 추측"을 의미합니다. 좋은 대답입니다!
Bob Kaufman

필자의 경우 IIS는 이전에 빌드되지 않은 MVC 사이트를 가리키고 있습니다. 도 분명히 그것을 구축하면 해결되었습니다.
Edgar

5
프로젝트 이름을 변경할 때이 오류가 발생했지만 global.asax.cs가 사용하는 네임 스페이스를 변경하는 것을 잊었습니다.
Pricey

1
당신은 신사이자 선생님입니다. 감사!
Ben Black

2
필자의 경우 내 프로젝트가 어떤 이유로 솔루션 구성 속성에서 빌드되도록 설정되지 않았습니다. i.imgur.com/kp73sGQ.png
Matthew Lock

24

구성 관리자를 사용하여 x86 또는 표준 프로젝트 "기본 설정"이외의 설정에서 실행하도록 강제 실행하면 IDE가 웹 프로젝트의 bin 폴더 아래에 많은 하위 디렉토리를 만듭니다.

이 작업이 시작되면 Cassini 서버가 실행 중이면 프로젝트가 제대로 작동하지 않습니다.

웹 프로젝트 속성-> 빌드 설정으로 이동하여 출력 경로를 bin \으로 변경하여 문제를 해결했습니다.

그런 다음 다시 빌드하고 모든 작업을 수행하십시오.


빙고, 이것은 나를 위해 일한 솔루션입니다. 감사합니다!
moshjeier

나에게도 효과가 있었다. 이것이 버그가 아닌가?
Matt Wilko

확인란을 빌드 선택되어 있다면 확인
다니엘 Bişar

내가 당신에게 맥주 10 개를 사서 오하이오 뮤에 온다면, 3 시간 이상 동안 다른 제안을보고있었습니다
Andrew Afternoon-Delight Hayde

9

오랫동안 열심히 본 후 여기에서 실제 문제에 직면했습니다.

파일을 호스팅 된 환경에 업로드 할 때 사용한 FTP 클라이언트로 인해 어셈블리가 손상되었습니다.

FTP 클라이언트를 변경했으며 모든 것이 의도 한대로 작동합니다.


9

나는 같은 문제가 있었다 : 웹 프로젝트가 x86의 플랫폼 목표를 가지고 있었기 때문이었다. 64 비트 컴퓨터에서 실행 중이었습니다. 솔루션의 다른 프로젝트는 64 비트로 설정되었습니다.

설정을 확인하려면 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하십시오. 빌드 탭에서 "플랫폼 대상"값을 확인하십시오.

또한 솔루션의 빌드 구성 (빌드 메뉴> 구성 관리자)을 확인하여 모든 프로젝트가 동일한 플랫폼에 빌드되는지 확인하십시오.

두 경우 모두 디버그 및 릴리스 모드에 대한 설정을 확인해야합니다. 그렇지 않으면 머신에서 작동하지만 배포 할 때는 작동하지 않습니다!


이 답변을 아래 @brockstaylor의 답변과 결합하여 Umbraco 7.1.6에서이 문제를 해결해야했습니다
devinbost

9

위의 모든 해결책을 시도했지만 운이 없습니다. <add assembly="*" />web.config에 줄 을 추가하면 문제가 해결되었습니다. 솔루션에 대한 MS 지원 덕분에 적절한 .NET 프레임 워크 버전의 machine.config 또는 root web.config 파일에 추가 할 수도 있습니다.


이것은 내 문제였다. <assemblies><clear/>...중첩 된 IIS 응용 프로그램의 부모 응용 프로그램에서 어셈블리 참조를 상속하지 못하게 해야 했습니다.
Craig Celeste

나는 이것을 절대로 필요로하지 않았다.. 파란에서, 나는 나의 dev 머신 중 하나에서이 문제에 부딪쳤다. 왜 시작했는지 모르지만 이것이 해결 된 유일한 것입니다
Pascal

9

나는 같은 오류처럼 보였습니다. 웹 사이트가 잘못된 버전의 .Net으로 설정되어 있다는 문제를 발견하기 위해 많은 페이지에서 많은 제안을 시도했습니다.

재 컴파일 횟수 나 '구성 문제'라고 말하는 사람이 있더라도 아무도 .net 버전을 확인해야한다고 지적하지 않았습니다.


8

프로젝트 / 솔루션 이름을 바꾸면 IT 부서와 함께합니다. Windows 탐색기에서 프로젝트 폴더로 이동하십시오 (VS에서 나가십시오). 전역 파일을 찾아서 열고 (아마도 2 개의 파일을 찾은 다음 ".asax.cs"확장자가없는 파일을 열고) 올바른 경로로 오류 행을 편집하십시오. 행운을 빕니다!


그것은 훌륭한 대답입니다. 더 많이 찬성해야합니다-응용 프로그램 이름 바꾸기가 발생하고 그러한 오류는 성가시다!
Bartosz

7

며칠 전에 똑같은 문제가 발생했습니다 .32 비트 웹 응용 프로그램을 실행하는 64 비트 IIS의 문제라고 말할 수있는 한. 프로덕션 서버를 32 비트로 변경했는데이 문제가 사라졌습니다.


5

웹 프로젝트 속성의 기본 네임 스페이스가 Global.asax.cs의 네임 스페이스와 동일한 지 확인하십시오. 기본 네임 스페이스를 하위 네임 스페이스로 변경하여 다시 변경하면이 문제가 해결되었습니다.


4

완성을 위해 내 문제와 해결 방법을 포함 시켰습니다.

당신처럼 나와 web.config를 통해 httphandlers가 있고 global.asax.cs (Session_Start ()에있을 수 있음)에서 리디렉션이있는 경우 시작 프로젝트에 참조가 정의되어 있지 않으면이 오류가 발생합니다. httphandler가 가리키는 대상! (그러나 빌드 오류가 발생하지 않고 런타임 오류 만 발생합니다)

그래서:

  1. 외부 항목이 있는지 web.config를 다시 확인하십시오.
  2. 시작 프로젝트에 필요한 모든 참조가 있는지 다시 확인하십시오.

건배.


Ajax Toolkit 컨트롤을 추가했지만 DLL에 대한 참조를 추가하지 않았습니다. # 2 주셔서 감사합니다.
pixelmeow

4

내가 경험 한 유일한 시간은 MVC 프레임 워크가 서버에 설치되지 않았을 때였습니다. 그럴 수 있습니까?

Views \ Web.config에서 누락 된 페이지 섹션에 결함이있을 수도 있습니다.


확실하지는 않지만 호스팅 서버이며 ASP .NET MVC가 제대로 작동합니다.
Riaan Engelbrecht

다른 이유로 비슷한 오류가 발생한 다른 사람 (Google 삼촌)을 발견했습니다. 답변 링크를 추가했습니다. 행운을 빕니다!
Daniel Elliott

3

나는 같은 오류가 있었고 어떤 해결책도 도움이되지 못했습니다. 내 문제는 단순히 프로젝트를 위해 선택한 이름이라고 생각합니다. 구문 분석 오류가 발생하면로드 할 수 없다고 말한 내 프로젝트의 이름을 '인터페이스'로 지정했습니다.

1 행 : <% @ 응용 프로그램 Codebehind = "Global.asax.cs"상속 = " @interface .MvcApplication"Language = "C #"%>

어떤 이유로 '@'표시가있는 곳. 나는 '인터페이스'라는 단어가 다른 것으로 예약되어 있고 @ 기호를 추가했지만 분명히 무언가를 깨뜨렸다 고 추측합니다. 프로젝트를 삭제하고 문제없이 다른 이름으로 새 프로젝트를 만들었습니다.


3

다른 하나는 다음과 같습니다.

  1. localhost : 12345를 사용하는 웹 API 프로젝트를 작업하고있었습니다.
  2. 동일한 프로젝트를 포함하는 소스 컨트롤과 다른 지점을 체크 아웃했습니다.
  3. 지점에서 프로젝트를 실행하고 오류가 발생했습니다.
  4. "속성> 웹> 프로젝트 URL"로 이동하여 "가상 디렉토리 만들기"를 클릭했습니다.
  5. URL이 다른 디렉토리 (원래 프로젝트의 디렉토리)에 매핑되었다는 대화 상자가 나타납니다.
  6. 확인을 클릭하면 가상 디렉터리가 다시 매핑됩니다.
  7. 오류가 사라졌습니다.

나는 누군가 어딘가에 도움이되기를 바랍니다 :)


그것은 실제로 나를 위해 그것을했다!
ra170

2

해결해야 할 많은 문제와 오류가 있었지만 위의 답변 중 일부가 도움이되었지만 마지막으로 도움이 된 것은 다음과 같습니다. 프로젝트로 이동하여 속성을 클릭하십시오.

패키지 / 게시 웹 탭으로 이동하여 구성이 릴리스 및 플랫폼에서 모든 플랫폼으로 설정되어 있는지 확인하십시오.

마지막으로 "배포 할 항목 (모든 배포 방법에 적용)"이 "이 프로젝트 폴더의 모든 파일"로 설정되어 있는지 확인하십시오.

그런 다음 나에게 잘 작동했습니다.


2

이 문제는 근본 원인을 즉각적인 원인과 혼동하기 쉽기 때문에 복잡합니다.

필자의 경우 즉각적인 원인은 솔루션이 NuGet 패키지 복원을 사용하도록 구성되었지만 서버가 인터넷에 연결되지 않았기 때문에 NuGet이 처음으로 빌드 할 때 종속성을 다운로드 할 수 없었기 때문입니다.

근본적인 원인은 솔루션이 종속성을 올바르게 해결할 수 없기 때문이라고 생각합니다. 경로 구성이 잘못되었거나 어셈블리 버전이 잘못되었거나 어셈블리가 충돌하거나 부분 배포 된 것일 수 있습니다. 그러나 모든 경우에 오류는 global.asax에 지정된 유형을 찾을 수 없기 때문에 찾을 수 없다는 것입니다.


2

Global.asax파일 의 네임 스페이스가 파일 의 네임 스페이스 와 일치 하는지 확인하십시오 .Global.cs 파일 즉,

Global.asax : Some.Website.Webapplication

Global.cs : Some.Website( 'WebApplication'빼기)


2

위의 답변 중 대부분을 시도했지만 작동하지 않았습니다. 어떤 이유로 VS를 닫았다가 다시 열면 문제가 해결되었습니다.


2

IIS에서 파일이 포함 된 실제 폴더를 응용 프로그램으로 변환하면 문제가 해결되었습니다. 마우스 오른쪽 버튼으로 클릭> 응용 프로그램으로 변환


1

나를 위해 프로젝트에서 파일을 일시적으로 제외했기 때문입니다. 프로젝트에 다시 포함시킨 다음 효과가있었습니다.


내가 폐쇄 때까지 내도, 솔루션 파일을 제거 몇 개의 파일을했다 난 몰랐 재 오픈 비주얼 스튜디오
피오나 - myaccessible.website

1

필자의 경우 System.Web.MVC에 대한 참조가 프로젝트에서 누락되었습니다. 그러나 참조 문제를 추가 한 후에도 동일하므로 내 Bin 폴더의 속성을 확인했습니다. 쓰기가 가능 해지 자마자 모든 것이 잘 작동합니다.


1

응용 프로그램을 가상 디렉터리로 배포했기 때문에 오류가 발생했으며 구문 분석기 오류 "유형을로드 할 수 없습니다"가 발생했습니다. 그런 다음 응용 프로그램을 웹 사이트로 배포했는데 해당 오류가 다시 발생하지 않습니다.


0

다른 답변 중 어느 것도 나를 위해이 오류를 해결하지 못했습니다.
나는 같은 상황에있는 사람들에게 제안하는 해결책을 찾았습니다.

  1. Visual Studio 닫기
  2. Projects \ yourProject \ yourProject로 이동하십시오.
  3. Web.Debug.config 및 Web.Release.config의 이름을 바꿉니다.
  4. 응용 프로그램을 재구성하고 실행하십시오.

이 항목을 삭제했지만 이제 다시 나타나지 않습니다.
FiringSquadWitness

0

나는 실제로 나를 위해 그것을 일으킨 원인의 바닥에 도달하지 않았다. 어딘가에 일부 파일이 누락되었을 것이라고 생각합니다. 새 서버에 게시 한 후 오류가 발생했습니다. 결국 작업 사이트에서 사이트를 복사했습니다. 그런 다음 사이트가 작동하여 새 서버에 추가로 게시했습니다.


0

다음과 같이하세요:

  1. 짓다
  2. 구성 관리자
  3. AnyCPU 프로젝트를 넣어
  4. 다시 생성
  5. 준비 완료 후 동일한 단계에 따라 x86 또는 x64로 전달하십시오.

0

나를 위해 32 비트 환경에서 실행 해야하는 DLL이 내 프로젝트에 포함되어 있습니다.

서버가 웹 사이트를 32 비트 모드로 실행하도록 구성되었지만 localhost폴더가 32 비트 모드로 실행되도록 지정되지 않았기 때문에 64 비트 컴퓨터에서 응용 프로그램을 실행할 수 없습니다.


0

방금 비슷한 문제가있었습니다.

그 이유는 file.aspx.c를 변경하고 깨끗하게 다시 작성해야했기 때문입니다. 그 후 모든 것이 효과가있었습니다.


0

내 문제는 이미 web.config 파일이있는 폴더의 하위 폴더에 ASPX 웹 응용 프로그램을 만들려고한다는 것입니다.

그래서 Visual Studio에서 부모 폴더를 웹 사이트 (Open> Web Site)로 열었습니다. 구문 분석 /로드에 문제가없는 새로운 항목 ASPX 페이지를 추가 할 수있었습니다.


0

나에게 문제는 웹 사이트 내의 특정 (긴) 링크에만 있었고 URL 길이 제한 260의 기본 구성을 가진 URLScan으로 추적되었습니다.


0

나는 같은 문제가 있었다. 하려고 노력하다:

프로젝트를 마우스 오른쪽 단추로 클릭하고 정리를 선택한 다음 마우스 오른쪽 단추로 다시 클릭하고 프로젝트 다시 빌드를 실행하고 프로젝트가 작동하는지 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.