보안 투명 메소드 'WebMatrix.WebData.PreApplicationStartCode.Start ()'에 의해 시도


176

업데이트 : mvc 4에서 mvc 5까지 동일합니다.

새로운 mvc 4 프로젝트를 시작하고 그 안에 mvc 3 프로젝트 (컨트롤러 / 모델 / 스크립트 등)를 마이그레이션했습니다. 모든 것이 지금 컴파일되는 동안 다음과 같은 오류가 발생합니다.

보안 투명 메소드 'WebMatrix.WebData.PreApplicationStartCode.Start ()'가 보안 중요 메소드 'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport (System.String)'에 액세스하려는 데 실패했습니다.

이 오류로 웹에서 아무것도 찾을 수 없습니다. 응용 프로그램을 시작하기 전에 오류가 발생합니다.

nuget으로 모든 어셈블리를 다시 설치하여 'clean'web.config를 사용할 수 없었습니다.

아무도 전에이 문제가 있었습니까?

답변:


246

나를 위해이 오류는 MVC 4에서 MVC 5로 업데이트 한 후 Microsoft.AspNet.WebHelpers가 설치되어 있지 않기 때문에 발생했습니다. NuGet 패키지를 설치하여 수정되었습니다.

Install-Package -Id  Microsoft.AspNet.WebHelpers

1
이것은 나를 위해 문제를 해결했다. 내 Resources클래스에 네임 스페이스 문제가 발생 했지만로 변경 Properties.Resources.xxxxx하고 문제가 해결되었습니다.
Cody

2
나는 이것을 실행하고 그것을 작동하지 않았다 ...하지만 다른 답변에서 실행하는 두 번째 명령이 있다고 다음 다행히 나는 톱 : stackoverflow.com/a/22587521/482256
케빈 넬슨에게

이것은 나에게 도움이되었지만 어셈블리 바인딩 code<dependentAssembly> <assemblyIdentity name = "WebMatrix.WebData"publicKeyToken = "31bf3856ad364e35"culture = "neutral"/> <bindingRedirect oldVersion = "0.0.0.0-3.0.0.0에서 아래 내용이 필요했습니다. "newVersion ="3.0.0.0 "/> </ dependentAssembly>code
Marchief

위에서 언급 한 패키지를 설치했는데 문제가 사라졌습니다. 나는 NUget UI를 사용하여 그것을 설치했고 그것은 또한 나를 위해 모든 의존성을 설치했다
Atta H.

204

오류가 발생하면

보안 투명 메소드 'WebMatrix.WebData.PreApplicationStartCode.Start ()'가 보안 중요 메소드 'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport (System.String)'에 액세스하려는 데 실패했습니다.

이 문제를 해결하려면 NuGet 패키지 관리자를 사용하여이 패키지를 설치하십시오.

Install-Package Microsoft.AspNet.WebHelpers

그 후 아마도 다른 오류가 발생합니다.

WebMatrix.Data 버전 3.0.0.0 어셈블리를로드 할 수 없습니다

NuGet 패키지 관리자를 사용하여이 패키지를 설치하십시오.

Install-Package Microsoft.AspNet.WebPages.Data

VS 2015 RTM으로 업그레이드 할 때이 정확한 오류가 발생했습니다. VS 2013에서도 동일한 코드가 정상적으로 실행되었지만 2013 IISExpress에서 무시할 것으로 의심되는 IIS에 대해 2015가 생성하는 새로운 .config 파일 만 다릅니다. 이 답변은이 경우도 해결했습니다. 너겟을 모두 추가하십시오.
angularsen

VS2015 RTM으로 웹 사이트를 전혀 실행하지 못했습니다. Microsoft.AspNet.WebHelpers를 설치하면 YSOD가 수정되었지만 일부 SQL 액세스 권한으로 인해 시간 초과가 발생했습니다. VS2013에서는 정확히 동일한 코드가 정상적으로 실행되었습니다.
angularsen

1
ASP .NET MVC 4에서 ASP .NET MVC 5로 업그레이드 할 때 VS 2013 Express Edition을 사용하여이 문제가 발생했습니다. @Anushka가 솔루션에 대한 두 번째 문제를 말했기 때문에 도움이되었습니다.
Jerameel Resco

VS 2015에서 솔루션을 실행하려고 할 때이 오류가 발생합니다. VS 2013에서 완벽하게 실행됩니다. 제안 된대로 2 개의 패키지를 설치하지만 왜 설치해야하는지 잘 모르겠습니다. VS 2013에서 VS 2015에서이 오류가 발생하지 않는 다른 솔루션을 개발했습니다.
John81

2
VS2015는 컴파일시 webapp의 bin 디렉토리에 일부 WebMatrix DLL을 넣기로 결정했습니다 .VS2013은 그렇게하지 않습니다. 2015가 어디서 이러한 DLL을 가져 오는지는 모르겠지만 WebMatrix DLLS없이 VS2013에 의해 컴파일 된 앱을 시작할 때 GAC에서로드되는 DLL과 다른 버전이어야합니다 (추천) 앱 저장소 디렉토리에 포함되어 있습니다. 2015 출력에서 ​​4 개의 WebMatrix 파일을 삭제하고 IIS를 다시 시작하면 문제가 해결됩니다.
Simon Green

19

MVC 4에서 MVC5로 업그레이드하려고하는 사람은 http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade 의 지침에 따라이 문제를 해결할 수있었습니다 . -an-aspnet-mvc-4- 및 -web-api-project-to-aspnet-mvc-5-and-web-api-2 .

또한 nuget에서 "Microsoft.AspNet.WebApi.WebHost"패키지를 설치해야했습니다. 하지만 그게 다야.

아, 그리고 나는이 appSetting을 만들어야했다 : <add key="owin:AutomaticAppStartup" value="false" />

:)


14

web.config 컴파일 요소가 WebMatrix.Data 및 WebMatrix.WebData 버전 2.0.0.0을 참조한다는 것을 알 때까지 위의 모든 솔루션을 시도했지만 여전히 작동하지 않습니다. web.config에서 해당 항목의 버전을 3.0.0.0으로 변경하면 도움이되었습니다.


10

로 업그레이드 mvc 4할 때 비슷한 문제로 어려움을 겪고 있습니다 mvc 5.

보안 투명 메소드 'System.Web.WebPages.Administration.SiteAdmin.RegisterAdminModule ()'에 의해 보안 중요 메소드 'System.Web.WebPages.ApplicationPart..ctor (System.Reflection.Assembly, System.String)'에 액세스하려는 시도가 실패했습니다.

게시 대화 상자의 추가 파일 삭제 확인란이 해결되었습니다.


SharePoint 2013 Provider Hosted App (ASP.NET MVC 5, Azure에 배포)에서이 오류가 발생했습니다. 게시 대화 상자의 "추가 파일 삭제"도 해결되었습니다.
아나톨리 미로 노프

8

Microsoft.AspNet.WebHelpers나를 위해 다시 설치

Update-Package reinstall Microsoft.AspNet.WebHelpers

6

한 가지 더 제안 ... 이것은 배포 서버의 사이트 bin 폴더에서 MVC 5로 업그레이드 한 후 MVC 3 프로젝트의 일부 오래된 dll에 의해 발생했습니다. 이 dll을 더 이상 코드 기반에서 사용하지 않았지만 문제를 일으키는 것으로 보입니다. 모든 것을 정리하고 다시 배포했는데 괜찮 았습니다.


이것이 내 오류의 원인이었습니다. bin 폴더에 오래된 파일과 새 파일이 있습니다. 감사합니다
Abhinaw Sharma

5

당신은 또한 얻을 수 있습니다 :

파일 또는 어셈블리 'WebMatrix.Data, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'또는 해당 종속성 중 하나를로드 할 수 없습니다. 찾은 어셈블리의 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다. (HRESULT 예외 : 0x80131040)

이 패키지로 옮겨졌습니다

 Install-Package Microsoft.AspNet.WebPages.Data

이 질문에 대한 답변을 시도하기 전에 그리고 패키지를 업데이트 한 후에 깨끗하게 빌드해야합니다.


3

이 문제를 해결 한 방법은 다음과 같습니다.

너겟 패키지 관리자 콘솔을 열고 아래의 너겟 패키지를 설치하십시오 :

Install-Package WebMatrix.Data
Install-Package Microsoft.AspNet.WebHelpers
Update-Package

솔루션을 청소하고 다시 빌드하면 내 asp.net 웹 앱이 작동하기 시작합니다!


2

bin에서 모든 파일을 삭제 한 다음 솔루션을 다시 작성하면 효과적입니다.


1

나를 위해이 오류는 MVC4에서 MVC5로 업그레이드 한 후 DotNetOpenAuth가 MVC5와 호환되지 않기 때문에 발생했습니다. Microsoft.Web.WebPages.OAuth를 제거하면 문제가 해결되었습니다.


1

참조에서 제거한 다음 Package Manager Console에서 실행하십시오.

Install-Package WebMatrix.Data

마지막으로 참조에 WebMatrix.WebData 어셈블리를 추가하고 프로젝트를 다시 빌드하십시오. 작동합니다. 문제가 해결되기를 바랍니다.


0

helppages nuget 패키지를 통해 webapi를 설치했습니다. 이 패키지는 대부분의 asp.net mvc 4 바이너리를 베타 버전으로 대체했으며 나머지 프로젝트에서는 잘 작동하지 않았습니다. 수정은 원래 mvc 4 dll을 복원하는 것이었고 모두 좋았습니다.


0

나는 같은 문제가 있었고 MVC Future (Microsoft.AspNet.Mvc.Futures)를 업데이트해야했습니다.

Install-Package Microsoft.AspNet.Mvc.Futures

0

나를 위해이 오류는 다음을 추가하여 해결되었습니다.

<system.web>
 <trust level="Full">
 </system.web>

web.config에서

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