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?

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

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

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

19

Bagi siapa pun yang mendarat di sini yang mencoba meningkatkan dari MVC 4 ke MVC5, saya dapat menyelesaikan masalah ini dengan mengikuti petunjuk di http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade -an-aspnet-mvc-4-dan-web-api-project-to-aspnet-mvc-5-dan-web-api-2 .

Saya juga harus menginstal paket "Microsoft.AspNet.WebApi.WebHost" dari nuget. Tapi begitulah.

Oh, dan saya harus membuat pengaturan aplikasi ini: <add key="owin:AutomaticAppStartup" value="false" />

:)


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.


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.


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

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.


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


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!


2

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


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.


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.


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.


0

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

Install-Package Microsoft.AspNet.Mvc.Futures

0

Bagi saya kesalahan ini diselesaikan dengan menambahkan

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

di web.config

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.