Intento por el método transparente de seguridad 'WebMatrix.WebData.PreApplicationStartCode.Start ()'

176

Actualización: igual para mvc 4 a mvc 5.

Comencé un nuevo proyecto mvc 4 y migré un proyecto mvc 3 (controladores / modelos / scripts, etc.). Si bien todo se compila ahora, aparece el siguiente error:

Intento por el método transparente de seguridad 'WebMatrix.WebData.PreApplicationStartCode.Start ()' para acceder al método crítico de seguridad 'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport (System.String)' falló.

No puedo encontrar nada en la web con este error. El error aparece antes de iniciar la aplicación.

Intenté reinstalar todos los ensamblajes con nuget, poniendo un web.config 'limpio' en vano.

¿Alguien tuvo este problema antes?

Elger Mensonides
fuente

Respuestas:

246

Para mí, este error se debió a que NO tenía instalado Microsoft.AspNet.WebHelpers después de actualizar de MVC 4 a MVC 5. Se solucionó instalando el paquete NuGet

Install-Package -Id  Microsoft.AspNet.WebHelpers
Miguel
fuente
1
Esto resolvió el problema para mí; creó algunos problemas de espacio de nombres con mi Resourcesclase, pero lo cambié Properties.Resources.xxxxxy los problemas se solucionaron.
Cody
2
Ejecuté esto y no funcionó ... pero afortunadamente vi que en otra respuesta, hay un segundo comando para ejecutar: stackoverflow.com/a/22587521/482256
Kevin Nelson
esto me lo solucionó, pero también necesitaba lo siguiente en los enlaces de ensamblaje 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
Instalo el paquete mencionado anteriormente y el problema se ha ido. Utilicé NUget UI para instalarlo y eso también instaló todas las dependencias para mí
Atta H.
204

Si recibes el error

Intento por el método transparente de seguridad 'WebMatrix.WebData.PreApplicationStartCode.Start ()' para acceder al método crítico de seguridad 'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport (System.String)' falló.

Para arreglar esto, instale este paquete usando el administrador de paquetes NuGet.

Install-Package Microsoft.AspNet.WebHelpers

Después de eso, probablemente obtendrá otro error.

No se puede cargar el ensamblado WebMatrix.Data versión 3.0.0.0

para arreglar esto instale este paquete usando el administrador de paquetes NuGet.

Install-Package Microsoft.AspNet.WebPages.Data
Anushka
fuente
Tuve este error exacto al actualizar a VS 2015 RTM. El mismo código funcionó bien con VS 2013, la única diferencia es un nuevo archivo .config que 2015 genera para IIS que sospecho que IISExpress 2013 ignora. Esta respuesta también solucionó este caso, agregue ambos nugets.
angularsen
Cabe mencionar que no tuve éxito al ejecutar mi sitio web con VS2015 RTM. La instalación de Microsoft.AspNet.WebHelpers corrigió el YSOD, pero luego tuve un tiempo de espera debido a algunos derechos de acceso sql. El mismo código exacto funcionó bien en VS2013.
angularsen
1
He encontrado este problema al usar VS 2013 Express Edition al actualizar de ASP .NET MVC 4 a ASP .NET MVC 5. Esto fue útil ya que @Anushka dijo el segundo problema con una solución.
Jerameel Resco
Recibo este error cuando traté de ejecutar mi solución en VS 2015. Funciona perfectamente bien en VS 2013. Instalar los 2 paquetes como funciona sugerido, pero no estoy seguro de por qué necesito instalarlos. Tengo otras soluciones que desarrollé en VS 2013 que no reciben este error en VS 2015.
John81
2
Hemos descubierto que VS2015 decide colocar algunas DLL de WebMatrix en el directorio bin de la aplicación web en la compilación, VS2013 no hace eso. No sé de dónde obtiene 2015 estas DLL, pero deben ser una versión diferente a las DLL que se cargan desde el GAC (supongo) cuando inicias la aplicación que ha sido compilada por VS2013 sin las DLLS de WebMatrix explícitamente incluido en el directorio bin de la aplicación. Tenga en cuenta que, si elimina los 4 archivos WebMatrix de la salida de 2015 y reinicia IIS, el problema desaparece.
Simon Green
14

Probé todas las soluciones anteriores y todavía no funcionaba, hasta que descubrí que el elemento de compilación web.config hacía referencia a la versión 2.0.0.0 de WebMatrix.Data y WebMatrix.WebData. Cambiar la versión de esas entradas en web.config a 3.0.0.0 me ayudó.

Pablo
fuente
10

He estado luchando con un problema similar al actualizar mvc 4a mvc 5:

Intento por el método transparente de seguridad 'System.Web.WebPages.Administration.SiteAdmin.RegisterAdminModule ()' para acceder al método crítico de seguridad 'System.Web.WebPages.ApplicationPart..ctor (System.Reflection.Assembly, System.String)' falló.

La casilla de verificación eliminar archivos adicionales en el cuadro de diálogo de publicación lo resolvió por mí.

Edward Olamisan
fuente
Tuve este error en mi aplicación hospedada de proveedor de SharePoint 2013 (ASP.NET MVC 5, implementada en Azure), "eliminar archivos adicionales" en el cuadro de diálogo de publicación también lo resolvió para mí.
Anatoly Mironov
8

Reinstalar Microsoft.AspNet.WebHelpersfunciona para mí

Update-Package reinstall Microsoft.AspNet.WebHelpers
Pablo Claus
fuente
6

Solo una sugerencia más ... Esto fue causado por algunos dll antiguos de un proyecto MVC 3 después de actualizar a MVC 5 en la carpeta bin del sitio en el servidor de implementación. A pesar de que estos dll ya no fueron utilizados por la base de código, parecían estar causando el problema. Lo limpié todo y lo volví a implementar y estuvo bien.

Chris
fuente
Esta fue la razón de mi error. Estaba teniendo archivos viejos y nuevos en la carpeta bin. gracias
Abhinaw Sharma
5

También puede obtener:

No se pudo cargar el archivo o ensamblado 'WebMatrix.Data, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' o una de sus dependencias. La definición de manifiesto del ensamblado ubicado no coincide con la referencia del ensamblado. (Excepción de HRESULT: 0x80131040)

Esto se ha movido a este paquete

 Install-Package Microsoft.AspNet.WebPages.Data

Probablemente debería hacer una compilación limpia antes de intentar cualquiera de las respuestas a esta pregunta y después de actualizar los paquetes

Simon_Weaver
fuente
3

Así es como solucioné este problema:

Abra la consola del administrador de paquetes nuget e instale los siguientes paquetes nuget:

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

¡Limpie la solución, reconstruya y mi aplicación web asp.net comenzará a funcionar!

Mostafa
fuente
2

Eliminar todos los archivos de bin y luego reconstruir la solución funcionó para mí.

theskhan
fuente
1

Para mí, este error fue causado por DotNetOpenAuth no es compatible con MVC5 después de actualizar de MVC4 a MVC5. Desinstalar Microsoft.Web.WebPages.OAuth solucionó el problema.

Dean North
fuente
1

Lo he eliminado de mis referencias. Luego, ejecute esto en la Consola del Administrador de paquetes

Install-Package WebMatrix.Data

Finalmente agregue el ensamblaje WebMatrix.WebData a las referencias y reconstruya el proyecto. Funciona para mí. Espero que también resuelva su problema.

Ali Golgol
fuente
0

Instalé webapi con él a través del paquete nuget de las páginas de ayuda. Ese paquete reemplazó la mayoría de los binarios asp.net mvc 4 con versiones beta que no funcionaron bien junto con el resto del proyecto. La solución fue restaurar los mvc 4 dll originales y todo estuvo bien.

Elger Mensonides
fuente
0

Tuve el mismo problema, tuve que actualizar MVC Future (Microsoft.AspNet.Mvc.Futures)

Install-Package Microsoft.AspNet.Mvc.Futures
PvtVandals
fuente
0

Para mí, estos errores se resolvieron agregando

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

en web.config

Omar Kamel
fuente