Mencoba dengan metode transparan keamanan 'WebMatrix.WebData.PreApplicationStartCode.Start ()'

176

Pembaruan: sama untuk mvc 4 hingga mvc 5.

Saya memulai proyek mvc 4 baru dan memigrasikan proyek mvc 3 di dalamnya (pengontrol / model / skrip dll). Sementara semuanya kompilasi sekarang saya mendapatkan kesalahan berikut:

Mencoba dengan metode transparan keamanan 'WebMatrix.WebData.PreApplicationStartCode.Start ()' untuk mengakses metode kritis keamanan 'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport (System.String)' gagal.

Saya tidak dapat menemukan apa pun di web dengan kesalahan ini. Kesalahan terjadi sebelum memulai aplikasi.

Saya mencoba menginstal ulang semua rakitan dengan nuget, membuat web.config 'bersih' tidak berhasil.

Adakah yang pernah mengalami masalah ini sebelumnya?

Elger Mensonides
sumber

Jawaban:

246

Bagi saya kesalahan ini adalah karena saya TIDAK memiliki Microsoft.AspNet.WebHelpers diinstal setelah memperbarui dari MVC 4 ke MVC 5. Itu diperbaiki dengan menginstal paket NuGet

Install-Package -Id  Microsoft.AspNet.WebHelpers
Michael
sumber
1
Ini memecahkan masalah bagi saya; itu memang membuat beberapa masalah namespace dengan Resourceskelas saya , tapi saya mengubahnya Properties.Resources.xxxxxdan masalah diperbaiki.
Cody
2
Saya menjalankan ini dan itu tidak berhasil ... tapi kemudian untungnya saya melihat bahwa dalam jawaban lain, ada perintah kedua untuk dijalankan: stackoverflow.com/a/22587521/482256
Kevin Nelson
ini cocok untuk saya, tetapi saya juga membutuhkan di bawah ini di binding perakitan code<dependentAssembly> <assemblyIdentity name = "WebMatrix.WebData" publicKeyToken = "31bf3856ad364e35" culture = "neutral" /> <bindingRedirect oldVersion = "0.0.0.0-3.0.0.0.0 "newVersion =" 3.0.0.0 "/> </dependentAssembly>code
Marchief
Saya menginstal paket yang disebutkan di atas dan masalah hilang. Saya menggunakan NUget UI untuk menginstalnya dan itu juga menginstal semua dependensi untuk saya
Atta H.
204

Jika Anda mendapatkan kesalahan

Mencoba dengan metode transparan keamanan 'WebMatrix.WebData.PreApplicationStartCode.Start ()' untuk mengakses metode kritis keamanan 'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport (System.String)' gagal.

Untuk memperbaiki ini instal paket ini menggunakan manajer paket NuGet.

Install-Package Microsoft.AspNet.WebHelpers

Setelah itu, mungkin Anda akan mendapatkan kesalahan lain

Tidak dapat memuat perakitan WebMatrix.Data versi 3.0.0.0

untuk memperbaikinya instal paket ini menggunakan manajer paket NuGet.

Install-Package Microsoft.AspNet.WebPages.Data
Anushka
sumber
Saya mengalami kesalahan ini saat memutakhirkan ke VS 2015 RTM. Kode yang sama berjalan baik dengan VS 2013, satu-satunya perbedaan adalah file .config baru yang dihasilkan oleh 2015 untuk IIS yang saya curigai diabaikan oleh IISExpress 2013. Jawaban ini memperbaiki kasus ini juga, tambahkan kedua nugets.
angularsen
Harus disebutkan bahwa saya tidak berhasil menjalankan situs web saya dengan VS2015 RTM sama sekali. Menginstal Microsoft.AspNet.WebHelpers memperbaiki YSOD, tetapi kemudian saya mendapat batas waktu karena beberapa hak akses sql. Kode yang sama persis berjalan dengan baik di VS2013.
angularsen
1
Saya mengalami masalah ini menggunakan VS 2013 Express Edition ketika memutakhirkan dari ASP .NET MVC 4 ke ASP .NET MVC 5. Ini sangat membantu karena @Anushka memberi tahu masalah kedua dengan solusi.
Jerameel Resco
Saya mendapatkan kesalahan ini ketika saya mencoba menjalankan solusi saya di VS 2015. Ini berjalan dengan baik di VS 2013. Menginstal 2 paket seperti yang disarankan berfungsi tetapi saya tidak yakin mengapa saya harus menginstalnya. Saya punya solusi lain yang saya kembangkan di VS 2013 yang tidak mendapatkan kesalahan ini di VS 2015.
John81
2
Kami telah menemukan bahwa VS2015 memutuskan untuk menempatkan beberapa DLL WebMatrix di direktori bin webapp pada kompilasi - VS2013 tidak melakukan itu. Saya tidak tahu dari mana 2015 mendapatkan DLL ini, tetapi mereka harus merupakan versi yang berbeda dengan DLL yang dimuat dari GAC (saya kira) ketika Anda memulai aplikasi yang telah dikompilasi oleh VS2013 tanpa WebMatrix DLLS secara eksplisit termasuk dalam direktori bin aplikasi. Perhatikan bahwa, jika Anda menghapus 4 file WebMatrix dari output 2015, dan me-restart IIS, masalahnya hilang.
Simon Green
14

Saya mencoba semua solusi di atas dan masih tidak berhasil, sampai saya menemukan bahwa elemen kompilasi web.config merujuk pada versi 2.0.0.0 dari WebMatrix.Data dan WebMatrix.WebData. Mengubah versi entri-entri itu di web.config menjadi 3.0.0.0 membantu saya.

Paul
sumber
10

Saya telah bergumul dengan masalah serupa ketika meningkatkan mvc 4ke mvc 5:

Mencoba dengan metode transparan keamanan 'System.Web.WebPages.Administration.SiteAdmin.RegisterAdminModule ()' untuk mengakses metode kritis keamanan 'System.Web.WebPages.ApplicationPart..ctor (System.Reflection.Assembly, System.String)' gagal.

Kotak centang hapus file ekstra dalam dialog publikasikan untuk saya.

Edward Olamisan
sumber
Saya memiliki kesalahan ini di App Hosted Host SharePoint 2013 saya (ASP.NET MVC 5, yang digunakan untuk Azure), "hapus file tambahan" di dialog publikasikan juga untuk saya.
Anatoly Mironov
8

Menginstal ulang Microsoft.AspNet.WebHelpersberfungsi untuk saya

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

Hanya satu saran lagi ... Ini disebabkan oleh beberapa dll lama dari proyek MVC 3 setelah memutakhirkan ke MVC 5 di folder situs bin pada server penempatan. Meskipun dll ini tidak lagi digunakan oleh basis kode mereka tampaknya menyebabkan masalah. Bersihkan semuanya dan digunakan kembali dan itu baik-baik saja.

chris
sumber
Ini adalah alasan kesalahan saya. Saya mengalami file lama dan baru di folder bin. terima kasih
Abhinaw Sharma
5

Anda juga bisa mendapatkan:

Tidak dapat memuat file atau rakitan 'WebMatrix.Data, Versi = 3.0.0.0, Budaya = netral, PublicKeyToken = 31bf3856ad364e35' atau salah satu dari dependensinya. Definisi manifes rakitan yang ditemukan tidak cocok dengan rujukan rakitan. (Pengecualian dari HRESULT: 0x80131040)

Ini telah pindah ke paket ini

 Install-Package Microsoft.AspNet.WebPages.Data

Anda mungkin harus melakukan build bersih sebelum mencoba salah satu jawaban untuk pertanyaan ini dan setelah memperbarui paket

Simon_Weaver
sumber
3

Inilah cara saya memperbaiki masalah ini:

Buka konsol pengelola paket nuget dan instal paket nuget di bawah ini:

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

Bersihkan solusinya, bangun kembali dan aplikasi web asp.net saya mulai bekerja!

Mostafa
sumber
2

Menghapus semua file dari nampan dan kemudian membangun kembali solusi bekerja untuk saya.

theskhan
sumber
1

Bagi saya kesalahan ini disebabkan oleh DotNetOpenAuth tidak kompatibel dengan MVC5 setelah memutakhirkan dari MVC4 ke MVC5. Menghapus Instalasi Microsoft.Web.WebPages.OAuth memperbaiki masalah.

Dean North
sumber
1

Saya telah menghapusnya dari referensi saya. Kemudian jalankan ini di Package Manager Console

Install-Package WebMatrix.Data

Akhirnya tambahkan rakitan WebMatrix.WebData ke referensi, dan bangun kembali proyek. Ini berfungsi untuk saya. Saya harap ini menyelesaikan masalah Anda juga.

Ali Golgol
sumber
0

Saya menginstal webapi dengannya melalui paket nuget helppages. Paket itu menggantikan sebagian besar binari asp.net mvc 4 dengan versi beta yang tidak bekerja dengan baik bersama dengan sisa proyek. Perbaiki adalah untuk mengembalikan dll mvc 4 asli dan semuanya baik-baik saja.

Elger Mensonides
sumber
0

Saya mempunyai masalah yang sama, saya harus memperbarui MVC Future (Microsoft.AspNet.Mvc.Futures)

Install-Package Microsoft.AspNet.Mvc.Futures
Vandal Pvt
sumber
0

Bagi saya kesalahan ini diselesaikan dengan menambahkan

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

di web.config

Omar Kamel
sumber