오류가 발생합니다
MvcApplication 유형을로드 할 수 없습니다
웹 사이트를 운영하려고 할 때
수정하는 방법?
오류가 발생합니다
MvcApplication 유형을로드 할 수 없습니다
웹 사이트를 운영하려고 할 때
수정하는 방법?
답변:
멍청한 것처럼 들리지만 모든 것을 시도했지만 작동하지 않고 마침내 VS2012를 다시 시작하여 다시 작동하는지 확인했습니다.
나에게 수정 사항은 빌드 탭에서 출력 경로를 변경하는 것이 었습니다. 출력 경로를로 변경하고 bin\
오류가 사라졌습니다.
또 다른 수정은 잘못된 시작 프로젝트 세트가 있다는 것입니다.
나는 동일한 오류가 발생하고 여기에 언급 된 모든 것을 수행했지만 아무것도 효과가 없었습니다. 전 이름이 다른 이전 버전의 프로젝트에서 global.asax.cs의 소스 코드를 복사 한 것으로 나타났습니다. 그래서 namespace Test
해야했다 namespace Test.WebUI
. 물론 바보 같은 실수이며 이것을 작성하는 것이 조금 당황합니다! 그러나 다른 사람의 비슷한 오류로 인해이 사소한 측면도 확인할 수 있기를 바랍니다.
솔루션을 수동으로 빌드하십시오.
로컬 IIS를 사용하는 경우 IIS 관리자에서 웹 사이트 등록을 삭제 한 다음 수동으로 다시 작성하십시오.
[질문에서 발췌]
"MvcApplication 유형을로드 할 수 없습니다"라는 오류가 표시되면 프로젝트의 출력 경로를보고 'bin \'으로 설정되어 있는지 확인하십시오. 문제는 AspNetCompiler가 파일이 기본 위치에 있지 않으면 파일을 찾을 수 없다는 것입니다.
출력 폴더 변경의 또 다른 부작용은 코드를 디버깅 할 수 없으며 어셈블리 정보를 찾을 수 없다는 메시지가 표시된다는 것입니다.
bin
로 bin\Debug
하고 bin\Release
있지만, 이전 파일 내에서 여전히 있었다 bin
내가 어떤 문제를 보지 못했다, 그래서 폴더에 있습니다. 물론, 당신이 깔끔한 체크 아웃을하고이 파일들을 빌드한다면 당신을 위해 존재하지 않기 때문에 그것은 파열됩니다.
내 해결책 : 문제가 생겼기 때문에! Global.asax.cs에서 네임 스페이스를 변경했습니다.
Global.asax에서 상속 속성 값도 변경해야합니다.
global.asax에 제공된 코드 숨김 정보를 확인하십시오. 코드 뒤에있는 클래스를 올바르게 가리켜 야합니다.
global.asax 샘플 :
<%@ Application Codebehind="Global.asax.cs" Inherits="MyApplicationNamespace.MyMvcApplication" Language="C#" %>
샘플 코드 뒤 :
namespace MyApplicationNamespace
{
public class MyMvcApplication : System.Web.HttpApplication
{
protected void Application_Start( )
{
AreaRegistration.RegisterAllAreas( );
FilterConfig.RegisterGlobalFilters( GlobalFilters.Filters );
RouteConfig.RegisterRoutes( RouteTable.Routes );
BundleConfig.RegisterBundles( BundleTable.Bundles );
}
}
}
이미 bin/
빌드 탭에있었습니다. 프로젝트의 다른 사본에서 global.asax를 얻었지만 해결되지 않았습니다.
마침내 나를 위해 일한 해결책은 bin/
폴더 를 제거 하고 동일한 이름으로 새 빈 폴더를 만드는 것입니다.
나는 이미 이것에 대한 많은 해결책이 있다는 것을 알고 있지만, 그것을 해결 한 것을 언급 할 것이라고 생각했다.
구성이 디버그로 설정되었습니다. 그것을 Release로 변경하면 나에게 속임수가되었습니다.
나는 이것에 빠졌다. 이전에 제공된 모든 가능한 솔루션을 읽고 테스트했습니다. 빌드 경로 확인, 빌드, 재 빌드, 정리, IIS 및 VS2015 다시 시작, 모든 nuget 패키지 재설치, 하나씩 컴파일 등 ...
VS는 ASP 임시 파일을 시스템 폴더에 보관한다는 사실을 갑자기 기억했습니다 ... 결국 더 나쁘지 않을 수도 있습니다. 그래서 나는 비웠다 :
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
그리고 모든 것이 다시 작동하고 있습니다 ...이 문제에는 가능한 다른 해결책이 있습니다 ...
나는 지난 10 년 동안 이것을 여러 번 보았고 그것을 다시 가지고 있었다. 동일한 오류가 발생하는 많은 문제가 있습니다.
한 가지 원인은 파일의 이름을 바꾸는 것입니다. .cshtml 파일로 작업하는 경우 해당 파일과 Views \ web.config 파일 내의 모든 네임 스페이스를 확인하십시오. 웹 양식의 경우 Default.aspx의 이름을 바꿉니다 (관련 .cs 및 디자이너 파일의 이름이 자동으로 바)). 코드 숨김은 변경되지만 마크 업의 상속 라인은 변경되지 않습니다. 수동으로 변경하십시오. 디자이너 페이지를 다시 확인하십시오. 때때로 (VS2005-8?) 디자이너 페이지에 네임 스페이스의 변경 사항이 반영되지 않습니다. 2010 년에 이것을 보지 못했습니다.
또 다른 문제는 VS 또는 로컬 PC에서 모두 작동하지만 배포 할 때는 작동하지 않는 것입니다. 배포 환경이 동일하게 구성되지 않았기 때문일 수 있습니다. 예를 들어, 코드를 응용 프로그램 폴더 아래의 가상 디렉터리에 배치하면 오류가 발생하지만 새 응용 프로그램 폴더를 만들어 모든 파일을 저장하면 발생하지 않습니다. 새로운 하위 / 가상 폴더가 동일한 권한으로 설정되어 있으므로 응용 프로그램 풀이 주어진 응용 프로그램 폴더의 모든 항목에 대해 동일하게 작동해야한다고 생각 하므로이 항목을 이해하지 못합니다.
필자의 경우 IIS 서버의 다른 어셈블리에서 업데이트 된 어셈블리가있는 bin 폴더도 있습니다. 다시 말하지만, 이들은 별도의 응용 프로그램 폴더에서 실행되어 성공했습니다.
HTH
Visual Studio의 개발 환경 에서이 좌절스러운 오류가 있었고 그 이유가 상당히 멍청한 것으로 나타났습니다. 즉, 솔루션에 하나 이상의 웹 프로젝트 / 사이트가있는 경우 웹 사이트에 액세스하려는 포트가 프로젝트 속성-> 웹에 구성된 포트와 동일한 지 확인하십시오.
내 경우에는 솔루션의 프로젝트에 다른 포트가 할당 된 동안 다른 포트를 사용하여 웹 사이트 (브라우저에서)에 액세스했기 때문에 오류가 발생했습니다. 좀 더 설명하기 위해 내 솔루션 Website1 (Visual-Studio의 ISS에서 포트 8001로 할당)과 Website2 (Visual-Studio의 ISS에서 포트 8101로 할당)에 두 개의 웹 사이트 프로젝트가있었습니다. 따라서 Website1을 구축하고 있었지만 locahost : 8101을 사용하여 웹 사이트에 액세스하려고했습니다.
이제 문제를 마침내 깨달았으므로 @StingyJack의 의견도 비슷한 문제를 해결합니다.
나를 위해 일한 것은 Visual Studio를 다시 시작하는 것이 었습니다.
수동으로 재 구축, 정리 및 재 구축 및 bin 폴더 삭제가 모두 작동하지 않았습니다. 출력 경로가 이미 bin \으로 설정되었습니다
경우에 따라 새 프로젝트는 기본적으로 빌드하도록 설정되지 않습니다. 솔루션을 마우스 오른쪽 버튼으로 클릭하면을 Properties
선택하고 Configuration Properties
| Configuration
왼쪽에 노드를 표시하고 프로젝트의 Build
열 아래에 확인 표시가 있는지 확인하십시오 . 정상적인 상황에서는 이것이 기본적으로 발생하는 것으로 나타났습니다. 다른 상황에서는 (이 동작을 나타내는 다소 복잡한 Web Api / Xamarin Android 및 iOS / Mvc 5 솔루션이 발생합니다) 확인 표시가 없습니다.
이것은 다른 답변과 관련이 있습니다. 웹 프로젝트의 조립품을 사용할 수없는 경우이 오류가 발생합니다. 그러나 이것은 일반적인 시나리오 일 수 있습니다. 특히 솔루션을 실제로 컴파일하기 때문에 프로젝트가 빌드되지 않습니다.
내 버전 컨트롤이 내 bin 폴더 를 무시하도록 설정되어 있기 때문에이 오류가 발생했습니다 . 매우 어리석은 사람이지만 다른 사람이 도움이 될 수 있습니다.