Próba przy użyciu przezroczystej metody zabezpieczeń „WebMatrix.WebData.PreApplicationStartCode.Start ()”


176

Aktualizacja: to samo dla mvc 4 do mvc 5.

Zacząłem nowy projekt MVC 4 i zmigrowałem w nim projekt MVC 3 (kontrolery / modele / skrypty itp.). Podczas gdy wszystko się teraz kompiluje, pojawia się następujący błąd:

Próba uzyskania dostępu do krytycznej dla bezpieczeństwa metody „System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport (System.String)” za pomocą przezroczystej metody zabezpieczeń „WebMatrix.WebData.PreApplicationStartCode.Start ()” nie powiodła się.

Nie mogę znaleźć niczego w sieci z tym błędem. Błąd pojawia się przed uruchomieniem aplikacji.

Próbowałem ponownie zainstalować wszystkie zestawy za pomocą nuget, bezskutecznie umieszczając „czysty” plik web.config.

Czy ktoś miał wcześniej ten problem?

Odpowiedzi:


246

U mnie ten błąd był spowodowany tym, że NIE miałem zainstalowanego Microsoft.AspNet.WebHelpers po aktualizacji z MVC 4 do MVC 5. Zostało to naprawione poprzez zainstalowanie pakietu NuGet

Install-Package -Id  Microsoft.AspNet.WebHelpers

1
To rozwiązało problem; spowodowało to pewne problemy z przestrzenią nazw w mojej Resourcesklasie, ale zmieniłem ją na Properties.Resources.xxxxxi problemy zostały naprawione.
— Cody

2
Uruchomiłem to i nie zadziałało ... ale potem na szczęście zobaczyłem, że w innej odpowiedzi jest drugie polecenie do uruchomienia: stackoverflow.com/a/22587521/482256
— Kevin Nelson

to naprawiłem to dla mnie, ale potrzebowałem również poniżej w powiązaniach zestawu 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

Instaluję powyższy pakiet i problem zniknął. Użyłem NUget UI, aby go zainstalować, a także zainstalowałem wszystkie zależności
— Atta H.

204

Jeśli otrzymujesz błąd

Próba uzyskania dostępu do krytycznej dla bezpieczeństwa metody „System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport (System.String)” za pomocą przezroczystej metody zabezpieczeń „WebMatrix.WebData.PreApplicationStartCode.Start ()” nie powiodła się.

Aby naprawić ten pakiet, zainstaluj ten pakiet za pomocą menedżera pakietów NuGet.

Install-Package Microsoft.AspNet.WebHelpers

Po tym prawdopodobnie pojawi się kolejny błąd

Nie można załadować zestawu WebMatrix.Data w wersji 3.0.0.0

aby naprawić ten pakiet, zainstaluj ten pakiet za pomocą Menedżera pakietów NuGet.

Install-Package Microsoft.AspNet.WebPages.Data

Miałem dokładnie ten błąd podczas aktualizacji do VS 2015 RTM. Ten sam kod działał dobrze w VS 2013, jedyną różnicą jest nowy plik .config, który 2015 generuje dla IIS, który, jak podejrzewam, ignoruje IISExpress 2013. Ta odpowiedź rozwiązała również ten przypadek, dodaj oba nugety.
— angularsen

Należy wspomnieć, że nie udało mi się w ogóle uruchomić mojej strony internetowej z VS2015 RTM. Zainstalowanie Microsoft.AspNet.WebHelpers naprawiło YSOD, ale zamiast tego dostałem limit czasu z powodu niektórych praw dostępu do sql. Dokładnie ten sam kod działał dobrze w VS2013.
— angularsen

1
Napotkałem ten problem przy użyciu VS 2013 Express Edition podczas aktualizacji z ASP .NET MVC 4 do ASP .NET MVC 5. Było to pomocne, ponieważ @Anushka powiedział o drugim problemie z rozwiązaniem.
— Jerameel Resco

Ten błąd pojawia się, gdy próbuję uruchomić moje rozwiązanie w VS 2015. Działa doskonale w VS 2013. Instalacja dwóch pakietów zgodnie z sugestią działa, ale nie wiem, dlaczego muszę je instalować. Mam inne rozwiązania, które opracowałem w VS 2013, które nie powodują tego błędu w VS 2015.
— John81

2
Odkryliśmy, że VS2015 decyduje się umieścić niektóre biblioteki DLL WebMatrix w katalogu bin aplikacji internetowej podczas kompilacji - VS2013 tego nie robi. Nie wiem, skąd 2015 pobiera te biblioteki DLL, ale muszą one być inną wersją niż biblioteki DLL ładowane z GAC (chyba) podczas uruchamiania aplikacji, która została skompilowana przez VS2013 bez jawnie DLL WebMatrix zawarte w katalogu bin aplikacji. Zauważ, że jeśli usuniesz 4 pliki WebMatrix z danych wyjściowych 2015 i ponownie uruchomisz IIS, problem zniknie.
— Simon Green

19

Dla każdego lądującego tutaj, który próbuje zaktualizować MVC 4 do MVC5, udało mi się rozwiązać ten problem, postępując zgodnie z instrukcjami podanymi na stronie http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade -an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2 .

Musiałem również zainstalować pakiet „Microsoft.AspNet.WebApi.WebHost” z nuget. Ale to jest to.

Aha, i musiałem stworzyć tę aplikację. <add key="owin:AutomaticAppStartup" value="false" />

:)


14

Wypróbowałem wszystkie powyższe rozwiązania i nadal nie działały, dopóki nie stwierdziłem, że element kompilacji web.config odwołuje się do wersji 2.0.0.0 WebMatrix.Data i WebMatrix.WebData. Pomogła mi zmiana wersji tych wpisów w pliku web.config na 3.0.0.0.


10

Miałem podobny problem podczas aktualizacji mvc 4do mvc 5:

Próba uzyskania dostępu do krytycznej dla bezpieczeństwa metody „System.Web.WebPages.ApplicationPart..ctor (System.Reflection.Assembly, System.String)” za pomocą przezroczystej metody zabezpieczeń „System.Web.WebPages.Administration.SiteAdmin.RegisterAdminModule ()” nie powiodła się.

Pole wyboru Usuń dodatkowe pliki w oknie dialogowym publikowania rozwiązało to za mnie.


Wystąpił ten błąd w mojej aplikacji hostowanej przez dostawcę SharePoint 2013 (ASP.NET MVC 5, wdrożona na platformie Azure), „usuń dodatkowe pliki” w oknie dialogowym publikowania również go rozwiązało.
— Anatoly Mironov

8

Ponowna instalacja Microsoft.AspNet.WebHelpersdziała dla mnie

Update-Package –reinstall Microsoft.AspNet.WebHelpers

6

Jeszcze jedna sugestia ... Było to spowodowane przez niektóre stare biblioteki DLL z projektu MVC 3 po uaktualnieniu do MVC 5 w folderze bin witryny na serwerze wdrażania. Mimo że te biblioteki DLL nie były już używane przez bazę kodu, wydawało się, że są przyczyną problemu. Wyczyszczono to wszystko i ponownie wdrożono i było dobrze.


To był powód mojego błędu. Miałem stare i nowe pliki w folderze bin. dzięki
— Abhinaw Sharma

5

Możesz również otrzymać:

Nie można załadować pliku lub zestawu „WebMatrix.Data, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35” lub jednej z jego zależności. Definicja manifestu zlokalizowanego zestawu nie jest zgodna z odwołaniem do zestawu. (Wyjątek od HRESULT: 0x80131040)

To zostało przeniesione do tego pakietu

 Install-Package Microsoft.AspNet.WebPages.Data

Prawdopodobnie powinieneś zrobić czystą kompilację przed próbą odpowiedzi na to pytanie i po zaktualizowaniu pakietów


3

Oto jak rozwiązałem ten problem:

Otwórz konsolę menedżera pakietów NuGet i zainstaluj poniższe pakiety NuGet:

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

Wyczyść rozwiązanie, odbuduj i moja aplikacja internetowa asp.net zacznie działać!


2

Usunięcie wszystkich plików z bin, a następnie odbudowanie rozwiązania zadziałało.


1

U mnie ten błąd był spowodowany tym, że DotNetOpenAuth nie był kompatybilny z MVC5 po aktualizacji z MVC4 do MVC5. Odinstalowanie Microsoft.Web.WebPages.OAuth rozwiązało problem.


1

Usunąłem go z moich odniesień, a następnie uruchom go w konsoli Menedżera pakietów

Install-Package WebMatrix.Data

Na koniec dodaj zestaw WebMatrix.WebData do referencji i przebuduj projekt. Działa dla mnie, mam nadzieję, że rozwiąże również twój problem.


0

Zainstalowałem z nim webapi za pośrednictwem pakietu nuget helppages. Ten pakiet zastąpił większość plików binarnych asp.net mvc 4 wersjami beta, które nie współpracowały dobrze z resztą projektu. Poprawka polegała na przywróceniu oryginalnych bibliotek dll mvc 4 i wszystko było dobrze.


0

Miałem ten sam problem, musiałem zaktualizować MVC Future (Microsoft.AspNet.Mvc.Futures)

Install-Package Microsoft.AspNet.Mvc.Futures

0

U mnie ten błąd rozwiązał dodając

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

w web.config

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.