Спроба прозорого методу безпеки "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, поставивши "чистий" web.config безрезультатно.

Хтось мав цю проблему раніше?

Відповіді:


246

Для мене ця помилка була через те, що у мене НЕ було встановлено Microsoft.AspNet.WebHelpers після оновлення з MVC 4 до MVC 5. Це було виправлено встановленням пакету NuGet

Install-Package -Id  Microsoft.AspNet.WebHelpers

1
Це вирішило для мене питання; він створив деякі проблеми простору імен з моїм Resourcesкласом, але я змінив його Properties.Resources.xxxxxі проблеми були виправлені.
Коді

2
Я запустив це, і це не спрацювало ... але потім, на щастя, я побачив, що в іншій відповіді є друга команда для запуску: stackoverflow.com/a/22587521/482256
Кевін Нельсон

це зафіксував це для мене, але мені також знадобилося нижче в прив'язках до складання code<dependentAssembly> <AssemblyIdentity name = "WebMatrix.WebData" publicKeyToken = "31bf3856ad364e35" culture = "neutral" /> <indingRedirect oldVersion = "0.0.0.0-3.0.0.0 "newVersion =" 3.0.0.0 "/> </dependentAssembly>code
Marchief

Встановлюю вищезгаданий пакет і проблеми вже немає. Я використовував інтерфейс NUget, щоб встановити його, а також встановив для мене всі залежності
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, лише різниця полягала в тому, що новий файл .config, який 2015 генерує для IIS, і я підозрюю, що 2013 IISExpress ігнорує. Ця відповідь зафіксувала і цей випадок, додайте обидва цілі.
angularsen

Слід зазначити, що я взагалі не мав успіху в застосуванні свого веб-сайту з VS2015 RTM. Встановлення Microsoft.AspNet.WebHelpers виправило YSOD, але потім я отримав тайм-аут через деякі права доступу sql. Точно той самий код виявився чудово у VS2013.
angularsen

1
Я зіткнувся з цією проблемою, використовуючи VS 2013 Express Edition під час оновлення з ASP .NET MVC 4 до ASP .NET MVC 5. Це було корисно, оскільки @Anushka розповіла другу проблему з рішенням.
Jerameel Resco

Я отримую цю помилку, коли я намагався запустити своє рішення в VS 2015. Він ідеально працює в VS 2013. Установка 2 пакетів як запропоновано працює, але я не впевнений, чому мені потрібно їх встановити. У мене є інші рішення, розроблені в VS 2013, які не отримують цієї помилки в VS 2015.
John81

2
Ми виявили, що VS2015 вирішує поставити деякі DLL-файли WebMatrix у каталог бін webapp при компіляції - VS2013 цього не робить. Я не знаю, звідки в 2015 році беруться ці DLL-файли, але вони повинні бути іншою версією для DLL-файлів, які завантажуються з GAC (я думаю), коли ви запускаєте додаток, складене VS2013 без явно DLLS WebMatrix включено до каталогу сміттєвих додатків. Зауважте, що якщо ви видалите 4 файли WebMatrix з виводу 2015 року та перезапустите IIS, проблема зникає.
Саймон Грін

19

Для тих, хто приїхав сюди, хто намагається оновити з MVC 4 до MVC5, мені вдалося вирішити цю проблему, дотримуючись інструкцій на веб-сторінці 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 .

Я також повинен був встановити пакет "Microsoft.AspNet.WebApi.WebHost" з nuget. Але це все.

О, і мені довелося створити цю програмуНалаштування: <add key="owin:AutomaticAppStartup" value="false" />

:)


14

Я спробував усі вищезазначені рішення, і це все ще не спрацювало, поки я не виявив, що елемент компіляції web.config посилається на версію 2.0.0.0 WebMatrix.Data та WebMatrix.WebData. Змінення версії цих записів у 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 (ASP.NET MVC 5, розгорнутий у Azure), "видалити додаткові файли" в діалоговому вікні публікації вирішив і для мене.
Анатолій Миронов

8

Перевстановлення Microsoft.AspNet.WebHelpersпрацює для мене

Update-Package reinstall Microsoft.AspNet.WebHelpers

6

Ще одна пропозиція ... Це було викликано для мене старими dll-проектами з проекту MVC 3 після оновлення до MVC 5 у папці бін сайту на сервері розгортання. Незважаючи на те, що ці DLL вже не використовуються кодовою базою, вони, як видається, викликають проблему. Очистили це все і знову розгорнули, і це було добре.


Це було причиною моєї помилки. У мене були старі та нові файли у папці bin. спасибі
Abhinaw Sharma

5

Ви також можете отримати:

Не вдалося завантажити файл або збірку "WebMatrix.Data, Версія = 3.0.0.0, Культура = нейтральна, 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

Видалення всіх файлів із біна, а потім відновлення рішення працювало на мене.


1

Для мене ця помилка була викликана тим, що DotNetOpenAuth не був сумісний з MVC5 після оновлення з MVC4 до MVC5. Видалення Microsoft.Web.WebPages.OAuth виправлено проблему.


1

Я видалив його з моїх посилань. Потім запустіть це в консолі диспетчера пакунків

Install-Package WebMatrix.Data

Нарешті додайте до посилань збірку WebMatrix.WebData та відновіть проект. Він працює на мене. Я сподіваюся, що він вирішить і вашу проблему.


0

Я встановив webapi разом з ним за допомогою пакету нугетів довідкових сторінок. Цей пакет замінив більшість бінарних файлів asp.net mvc на бета-версії, які не працювали добре з рештою проекту. Виправлення було відновити оригінальний mvc 4 dll, і все було добре.


0

У мене була така ж проблема, мені довелося оновити MVC Future (Microsoft.AspNet.Mvc.Futures)

Install-Package Microsoft.AspNet.Mvc.Futures

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.