Tentativo di metodo trasparente di sicurezza 'WebMatrix.WebData.PreApplicationStartCode.Start ()'


176

Aggiornamento: lo stesso per mvc 4 a mvc 5.

Ho avviato un nuovo progetto mvc 4 e ho migrato un progetto mvc 3 (controller / modelli / script ecc.). Mentre tutto viene compilato ora ottengo il seguente errore:

Tentativo del metodo trasparente di sicurezza 'WebMatrix.WebData.PreApplicationStartCode.Start ()' per accedere al metodo critico di sicurezza 'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport (System.String)' non riuscito.

Non riesco a trovare nulla sul web con questo errore. L'errore si verifica prima di accedere all'avvio dell'applicazione.

Ho provato a reinstallare tutti gli assembly con nuget, rendendo inutile un web.config "pulito".

Qualcuno ha avuto questo problema prima?

Risposte:


246

Per me questo errore è stato dovuto al fatto che NON avevo installato Microsoft.AspNet.WebHelpers dopo l'aggiornamento da MVC 4 a MVC 5. È stato risolto installando il pacchetto NuGet

Install-Package -Id  Microsoft.AspNet.WebHelpers

1
Questo ha risolto il problema per me; ha creato alcuni problemi di spazio dei nomi con la mia Resourcesclasse, ma l'ho cambiato in Properties.Resources.xxxxxe i problemi sono stati risolti.
Cody,

2
Ho eseguito questo e non ha funzionato ... ma per fortuna ho visto che in un'altra risposta, c'è un secondo comando da eseguire: stackoverflow.com/a/22587521/482256
Kevin Nelson,

questo è stato risolto per me, ma avevo anche bisogno di quanto segue nei collegamenti di assembly 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

Installo il pacchetto sopra menzionato e il problema è sparito. Ho usato NUget UI per installarlo e questo ha installato anche tutte le dipendenze per me
Atta H.

204

Se stai ricevendo l'errore

Tentativo del metodo trasparente di sicurezza 'WebMatrix.WebData.PreApplicationStartCode.Start ()' per accedere al metodo critico di sicurezza 'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport (System.String)' non riuscito.

Per risolvere questo problema installare questo pacchetto usando il gestore pacchetti NuGet.

Install-Package Microsoft.AspNet.WebHelpers

Successivamente, probabilmente otterrai un altro errore

Impossibile caricare l'assembly versione 3.0.0.0 di WebMatrix.Data

per risolvere questo problema installare questo pacchetto usando il gestore pacchetti NuGet.

Install-Package Microsoft.AspNet.WebPages.Data

Ho riscontrato questo errore esatto durante l'aggiornamento a VS 2015 RTM. Lo stesso codice ha funzionato bene con VS 2013, l'unica differenza è un nuovo file .config che il 2015 genera per IIS che sospetto che IISExpress del 2013 ignori. Questa risposta ha risolto anche questo caso, aggiungere entrambi i nuget.
angularsen,

Va detto che non sono riuscito a gestire il mio sito Web con VS2015 RTM. L'installazione di Microsoft.AspNet.WebHelpers ha risolto YSOD, ma invece ho ottenuto un timeout a causa di alcuni diritti di accesso sql. Lo stesso codice esatto funzionava bene in VS2013.
angularsen,

1
Ho riscontrato questo problema utilizzando VS 2013 Express Edition durante l'aggiornamento da ASP .NET MVC 4 ad ASP .NET MVC 5. Questo è stato utile poiché @Anushka ha riferito al secondo problema con una soluzione.
Jerameel Resco,

Ottengo questo errore quando ho provato a eseguire la mia soluzione in VS 2015. Funziona perfettamente in VS 2013. L'installazione dei 2 pacchetti come suggerito funziona ma non sono sicuro del motivo per cui è necessario installarli. Ho altre soluzioni che ho sviluppato in VS 2013 che non ottengono questo errore in VS 2015.
John81,

2
Abbiamo scoperto che VS2015 decide di inserire alcune DLL WebMatrix nella directory bin della webapp durante la compilazione - VS2013 non lo fa. Non so da dove 2015 ottengano queste DLL, ma devono essere una versione diversa rispetto alle DLL caricate dal GAC (suppongo) quando avvii l'app che è stata compilata da VS2013 senza le DLL WebMatrix esplicitamente incluso nella directory del cestino dell'app. Si noti che, se si eliminano i 4 file WebMatrix dall'output 2015 e si riavvia IIS, il problema scompare.
Simon Green,


14

Ho provato tutte le soluzioni di cui sopra e non funzionava ancora, finché non ho scoperto che l'elemento di compilazione web.config faceva riferimento alla versione 2.0.0.0 di WebMatrix.Data e WebMatrix.WebData. La modifica della versione di quelle voci nel web.config in 3.0.0.0 mi ha aiutato.


10

Ho riscontrato un problema simile durante l'aggiornamento mvc 4a mvc 5:

Tentativo di metodo di sicurezza trasparente "System.Web.WebPages.Administration.SiteAdmin.RegisterAdminModule ()" per accedere al metodo critico di sicurezza "System.Web.WebPages.ApplicationPart..ctor (System.Reflection.Assembly, System.String)" non riuscito.

La casella di controllo Elimina file extra nella finestra di dialogo Pubblica ha risolto il problema.


Ho riscontrato questo errore nella mia app ospitata dal provider di SharePoint 2013 (ASP.NET MVC 5, distribuita in Azure), "elimina file aggiuntivi" nella finestra di dialogo di pubblicazione risolto anche per me.
Anatoly Mironov,

8

La reinstallazione Microsoft.AspNet.WebHelpersfunziona per me

Update-Package reinstall Microsoft.AspNet.WebHelpers

6

Solo un altro suggerimento ... Questo è stato causato per me da alcune vecchie DLL di un progetto MVC 3 dopo l'aggiornamento a MVC 5 nella cartella bin del sito sul server di distribuzione. Anche se queste DLL non erano più utilizzate dalla base di codice, sembravano causare il problema. Pulito tutto e ri-distribuito e andava bene.


Questa era la ragione del mio errore. Avevo vecchi e nuovi file nella cartella bin. grazie
Abhinaw Sharma

5

Puoi anche ottenere:

Impossibile caricare il file o l'assembly 'WebMatrix.Data, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' o una delle sue dipendenze. La definizione manifest dell'assembly individuato non corrisponde al riferimento dell'assembly. (Eccezione da HRESULT: 0x80131040)

Questo è stato spostato in questo pacchetto

 Install-Package Microsoft.AspNet.WebPages.Data

Probabilmente dovresti fare una build pulita prima di tentare una delle risposte a questa domanda e dopo aver aggiornato i pacchetti


3

Ecco come ho risolto questo problema:

Aprire la console di gestione dei pacchetti nuget e installare i pacchetti nuget seguenti:

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

Pulisci la soluzione, ricostruisci e la mia app web asp.net inizia a funzionare!


2

Eliminare tutti i file dal cestino e quindi ricostruire la soluzione ha funzionato per me.


1

Per me questo errore è stato causato da DotNetOpenAuth non compatibile con MVC5 dopo l'aggiornamento da MVC4 a MVC5. La disinstallazione di Microsoft.Web.WebPages.OAuth ha risolto il problema.


1

L'ho rimosso dai miei riferimenti, quindi eseguilo nella console di Gestione pacchetti

Install-Package WebMatrix.Data

Infine aggiungi l'assieme WebMatrix.WebData ai riferimenti e ricostruisci il progetto. Funziona per me. Spero che risolva anche il tuo problema.


0

Ho installato webapi con esso tramite il pacchetto nuget helppages. Quel pacchetto ha sostituito la maggior parte dei binari asp.net mvc 4 con versioni beta che non funzionavano bene insieme al resto del progetto. La correzione era ripristinare l'originale dll di mvc 4 e tutto andava bene.


0

Ho avuto lo stesso problema, ho dovuto aggiornare MVC Future (Microsoft.AspNet.Mvc.Futures)

Install-Package Microsoft.AspNet.Mvc.Futures

0

Per me questo errore è stato risolto aggiungendo

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

in web.config

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.