Pesan Kesalahan Parser: Tidak dapat memuat jenis 'TestMvcApplication.MvcApplication'

152

Saya mendapatkan kesalahan berikut di salah satu server produksi kami. Tidak yakin mengapa ini bekerja pada server DEV?

Deskripsi Parser Error : Kesalahan terjadi selama parsing sumber daya yang diperlukan untuk melayani permintaan ini. Harap tinjau detail kesalahan parse tertentu berikut ini dan modifikasi file sumber Anda dengan tepat.

Pesan Kesalahan Parser : Tidak dapat memuat ketik 'TestMvcApplication.MvcApplication'.

Kesalahan Sumber :

Baris 1: <% @ Application Codebehind = "Global.asax.cs" Inherits = "TestMvcApplication.MvcApplication" Language = "C #"%>

File Sumber: /global.asax Baris: 1

Tidak yakin apakah ada yang menemukan kesalahan ini sebelumnya dan bagaimana mengatasinya, tetapi saya telah mencapai akhirnya. Bantuan apa pun akan dihargai.

Saya juga perlu menyebutkan bahwa ini adalah kode yang diterbitkan, jadi semua dikompilasi. Mungkinkah ada yang salah dengan pengaturan kompiler saya?

Riaan Engelbrecht
sumber
kemungkinan duplikat dari Tidak dapat memuat tipe MvcApplication
Alexander
15
Keluar dari Visual Studio & restart untuk saya.
RickAndMSFT
hapus file global.asax dan tambahkan yang baru, dan Anda akan baik-baik saja.
DotNetGeek
Ini terjadi pada saya ketika menggunakan aplikasi yang sebelumnya berfungsi. Sesuatu dalam IIS (7) masuk ke kondisi buruk; mengatur ulang IIS memperbaiki masalah.
BurnsBA

Jawaban:

169

Tidak ada jawaban lain yang bekerja untuk saya. Saya memperbaiki kesalahan saya dengan mengubah jalur output proyek web. Saya telah mengaturnya ke bin \ debug tetapi proyek web tidak berfungsi kecuali jalur output ditetapkan hanya "bin"

Brian Leeming
sumber
Ini adalah masalah saya, membuat saya sangat sedih karena tidak ada solusi lain di sini yang bekerja untuk saya ..
Zack
3
+1 Ini juga masalah saya. Pesan kesalahan dan bantuan tentang ini pada dasarnya tidak ada. Terima kasih.
Noldorin
4
Bagi saya, bin \ memberikan kesalahan, saya mengubahnya hanya untuk bin. dan itu berhasil.
Nanu
1
Bagi saya, masalahnya adalah saya tidak sengaja memilih x86 sebagai platform aktif, dan untuk konfigurasi ini pengaturan proyek salah (Bin \ Debug \ x86). Mengubah kembali ke CPU Apa pun memperbaiki masalah. Tetapi mengubah jalur output juga berhasil.
Lars Udengaard
13
Jadi, mengubah Path Output dari bin \ Debug \ ke bin menghapus kesalahan untuk saya. Tetapi pertanyaan sebenarnya adalah: "Mengapa bin \ Debug tidak bekerja sejak awal?" Ketika saya membangun konfigurasi Debug atau Release, saya ingin file dihasilkan di direktori bin yang sesuai.
Ellesedil
96

Saya sudah mengalami ini beberapa kali. Ini terutama frustasi karena langsung dari kelelawar, dan pesan kesalahan tidak memiliki petunjuk tentang apa yang mungkin menjadi masalah.

Untuk memperbaikinya, klik kanan judul proyek Anda, dalam hal ini "TestMvcApplication" dan klik build .

Ini memaksa kode untuk dikompilasi sebelum Anda menjalankannya. Jangan tanya kenapa, tapi ini sudah menjadi solusi 100% untukku.

Andy Copley
sumber
4
+1 Saya juga. Dan saya sudah mencoba beberapa hal, dan dengan "hal-hal" Maksudku "tebakan liar". Jawaban yang bagus!
Bob Kaufman
Dalam kasus saya, saya memiliki IIS yang menunjuk ke situs MVC yang belum pernah dibangun sebelumnya. Doh. Jelas, bangunan itu memperbaikinya.
Edgar
5
Saya juga mendapatkan kesalahan ini ketika mengubah nama proyek tetapi lupa mengubah namespace yang digunakan global.asax.cs.
Mahal
1
Anda adalah seorang pria dan tuan, bahkan tidak berpikir untuk membangunnya. Terima kasih!
Ben Black
2
Dalam kasus saya, proyek saya tidak diatur untuk dibangun di Properti Konfigurasi Konfigurasi karena beberapa alasan: i.imgur.com/kp73sGQ.png
Matthew Lock
24

Saya telah menemukan bahwa ketika Anda dipaksa untuk menggunakan Manajer Konfigurasi untuk berjalan di bawah pengaturan x86 atau apa pun selain proyek standar "out of the box", IDE membuat banyak sub direktori di bawah folder bin untuk proyek web.

Setelah ini mulai terjadi, jika server Cassini berjalan, maka proyek tidak berfungsi dengan baik.

Saya memperbaikinya dengan masuk ke properti Proyek Web -> Membangun pengaturan dan mengubah Jalur Output menjadi bin \

Kemudian membangun kembali dan semua berfungsi sebagaimana mestinya.

DamoDBear
sumber
Bingo, ini adalah solusi yang bekerja untuk saya juga. Terima kasih!
moshjeier
Bekerja untuk saya juga - bukankah ini bug?
Matt Wilko
Dan periksa apakah kotak centang diperiksa untuk membangun
Daniel Bişar
Jika Anda pernah berada di Ohio hmu karena saya membelikan Anda 10 bir, telah melihat berbagai saran selama lebih dari 3 jam
Andrew Afternoon-Delight Hayde
9

Setelah lama melihat-lihat, saya menemukan masalah sebenarnya di sini.

Rakitan rusak oleh klien FTP yang saya gunakan untuk mengunggah file ke lingkungan yang dihosting.

Saya mengubah klien FTP saya dan semuanya berfungsi sebagaimana mestinya.

Riaan Engelbrecht
sumber
9

Saya memiliki masalah yang sama: milik saya adalah karena proyek web memiliki target platform x86. Saya menggunakan mesin 64-bit; proyek lain dalam solusi ditetapkan ke 64-bit.

Untuk memeriksa pengaturan Anda, klik kanan proyek dan pilih Properties. Pada tab Bangun, periksa nilai "Target Platform".

Periksa juga konfigurasi build solusi Anda (Build menu> Configuration Manager) untuk memeriksa semua proyek Anda sedang dibangun ke platform yang sama.

Dalam kedua kasus, pastikan Anda memeriksa pengaturan untuk mode debug dan rilis - jika tidak Anda akan membuatnya bekerja pada mesin Anda tetapi tidak ketika Anda menyebarkannya!

Teedyay
sumber
Saya diminta untuk menggabungkan jawaban ini dengan jawaban dari @brockstaylor di bawah untuk menyelesaikan masalah ini pada Umbraco 7.1.6
devinbost
9

Saya mencoba semua solusi di atas tetapi tidak berhasil. Menambahkan baris <add assembly="*" />ke web.config memperbaikinya untuk saya. (Anda juga dapat menambah file machine.config atau root web.config dari versi .NET framework yang sesuai, saya tidak mencobanya) Terima kasih kepada MS Support untuk solusi.

Manish Jain
sumber
Ini masalah saya. Saya harus <assemblies><clear/>...mencegah mewarisi referensi perakitan dari aplikasi induk dalam aplikasi IIS bersarang.
Craig Celeste
Saya tidak pernah membutuhkan ini .. daripada, tiba-tiba, saya mengalami masalah ini di salah satu mesin dev saya. Tidak tahu mengapa itu dimulai, tetapi ini adalah satu-satunya hal yang menyelesaikannya
Pascal
9

Saya mengalami kesalahan yang sama. Saya mencoba banyak saran dari banyak halaman hanya untuk mengetahui masalahnya adalah bahwa situs web saya telah disetel ke versi .Net yang salah

Tidak peduli berapa banyak kompilasi ulang atau orang-orang yang mengatakan 'masalah konfigurasi', tidak ada yang menyatakan bahwa versi .net perlu diperiksa.

Carl Wright
sumber
8

ITU terjadi pada saya ketika saya mengganti nama proyek / solusi saya. Pergi ke folder proyek di windows explorer (keluar dari VS). Temukan dan buka file Global (mungkin Anda akan menemukan 2 file, buka yang tidak memiliki ekstensi ".asax.cs"), dan edit baris kesalahan dengan jalur yang benar. Semoga berhasil!

Paulo
sumber
Itu jawaban yang bagus, harus lebih ditingkatkan - penggantian nama aplikasi terjadi dan kesalahan seperti itu mengganggu!
Bartosz
7

Saya mengalami masalah yang sama persis beberapa hari yang lalu - sejauh yang saya tahu itu adalah masalah dengan IIS 64-bit yang menjalankan aplikasi web 32-bit. Kami mengubah server produksi kami menjadi 32-bit dan masalah ini hilang.

Jaco Pretorius
sumber
5

Pastikan namespace default Anda di properti proyek web sama dengan namespace di Global.asax.cs. Saya telah memodifikasi namespace default untuk menjadikannya subnamespace, mengubahnya kembali memperbaiki masalah ini untuk saya.

Ace Hyzer
sumber
4

Demi kelengkapan saya memasukkan apa masalah saya dan bagaimana saya menyelesaikannya:

Jika Anda menyukai saya dan memiliki httphandlers melalui web.config dan Anda memiliki pengalihan dari global.asax.cs Anda (mungkin di Session_Start ()) seperti dalam kasus saya, Anda mendapatkan kesalahan ini jika proyek startup Anda tidak memiliki referensi yang ditentukan yang menunjuk ke mana target di mana httphandler Anda menunjuk !! (tetapi Anda tidak akan mendapatkan kesalahan build, hanya kesalahan runtime)

Begitu:

  1. Periksa web.config Anda untuk item-item eksternal
  2. Periksa proyek startup Anda memiliki semua referensi yang dibutuhkan.

Bersulang.

Chris
sumber
Saya telah menambahkan kontrol Ajax Toolkit tetapi belum menambahkan referensi ke DLL. Terima kasih untuk # 2 Anda.
pixelmeow
4

Satu-satunya waktu saya mengalami ini adalah ketika kerangka kerja MVC tidak diinstal pada server. Mungkinkah itu masalahnya?

Bagian Halaman yang hilang di Views \ Web.config juga bisa salah.

Daniel Elliott
sumber
Tidak yakin, ini adalah server yang dihosting dan menurut mereka ASP .NET MVC berfungsi dengan baik.
Riaan Engelbrecht
Saya menemukan orang lain (dengan Paman Google) yang mengalami kesalahan serupa karena alasan yang berbeda. Tautan ditambahkan ke jawaban. Semoga berhasil!
Daniel Elliott
3

Saya memiliki kesalahan yang sama dan tidak ada solusi Anda yang membantu. Saya pikir masalah saya hanyalah nama yang saya pilih untuk proyek tersebut. Saya telah menamai proyek saya 'antarmuka' yang ketika saya mendapatkan kesalahan parse itu mengatakan bahwa itu tidak dapat memuat:

Baris 1: <% @ Application Codebehind = "Global.asax.cs" Inherits = " @interface .MvcApplication" Language = "C #"%>

Di mana ada tanda '@' untuk beberapa alasan. Saya menduga kata 'antarmuka' dicadangkan untuk sesuatu yang lain dan menambahkan simbol @ tapi itu jelas memecahkan sesuatu. Saya menghapus proyek dan membuat yang baru dengan nama yang berbeda tanpa masalah.

Mat
sumber
3

Ini satu lagi:

  1. Saya telah mengerjakan proyek web api yang menggunakan localhost: 12345.
  2. Saya memeriksa cabang berbeda dari kontrol sumber yang berisi proyek yang sama.
  3. Saya menjalankan proyek di cabang dan mendapat kesalahan.
  4. Saya pergi ke "Properties> Web> Project Url" dan mengklik "Buat Direktori Virtual"
  5. Dialog muncul memberitahu saya bahwa url telah dipetakan ke direktori yang berbeda (direktori untuk proyek asli).
  6. Saya mengklik Oke dan direktori virtual telah dipetakan kembali.
  7. Kesalahan hilang.

Saya harap itu membantu seseorang di suatu tempat :)

grahamesd
sumber
yang sebenarnya melakukannya untuk saya!
ra170
2

Saya memiliki banyak masalah dan kesalahan untuk dipecahkan, beberapa jawaban di atas membantu, tetapi trik terakhir yang membuatnya berhasil adalah: Buka proyek Anda, klik properti.

Buka tab Paket / Publikasikan Web dan pastikan konfigurasi diatur ke Rilis dan Platform ke Semua Platform.

Terakhir pastikan bahwa "Item untuk digunakan (berlaku untuk semua metode penyebaran)" diatur ke "Semua file dalam folder proyek ini"

Itu kemudian bekerja dengan baik untuk saya.

Emiel Haeghebaert
sumber
2

Masalah ini rumit karena mudah untuk mengacaukan akar penyebab dengan apa pun penyebab langsungnya.

Dalam kasus saya, penyebab langsungnya adalah bahwa solusi dikonfigurasi untuk menggunakan Pemulihan Paket NuGet, tetapi server tidak terhubung ke internet, sehingga NuGet tidak dapat mengunduh dependensi saat membangun untuk pertama kalinya.

Saya percaya akar penyebabnya hanyalah bahwa solusinya tidak dapat menyelesaikan dependensi dengan benar. Ini mungkin konfigurasi jalur yang salah, atau versi perakitan yang salah, atau rakitan yang saling bertentangan, atau penyebaran parsial. Tetapi dalam semua kasus, kesalahannya hanya mengatakan bahwa ia tidak dapat menemukan tipe yang ditentukan dalam global.asax karena itu tidak dapat membangunnya.

shovavnik
sumber
2

Pastikan bahwa Namespace dalam Global.asaxfile cocok dengan yang ada di Global.csfile yaitu

Global.asax: Some.Website.Webapplication

Global.cs: Some.Website(minus 'Aplikasi Web')

TheDaveJay
sumber
2

Saya mencoba sebagian besar jawaban di atas dan tidak berhasil. Untuk beberapa alasan, hanya menutup dan membuka kembali VS memperbaiki masalah untuk saya.

Rochelle C
sumber
2

Masalah saya terpecahkan ketika saya mengonversi di IIS folder fisik yang berisi file ke aplikasi. Klik kanan> konversi ke aplikasi.

jayt.dev
sumber
1

Bagi saya, itu karena saya sementara mengecualikan file dari proyek. Saya hanya memasukkannya ke belakang dalam proyek dan kemudian berhasil.

mstechnewbie
sumber
Milik saya juga, file solusi telah memiliki beberapa file dihapus dan saya tidak menyadari sampai saya menutup dan membuka kembali Visual Studio
Fiona - myaccessible.website
1

Dalam referensi kasus saya System.Web.MVC hilang dari proyek saya. Tapi setelah menambahkan masalah referensi itu sama jadi saya memeriksa properti folder Bin saya itu ReadOnly. Hanya setelah membuatnya bisa ditulis, semuanya bekerja dengan baik.

yashpal
sumber
1

Saya mendapatkan kesalahan karena saya menggunakan aplikasi sebagai direktori virtual dan saya mendapatkan kesalahan parser "tidak dapat memuat jenis" maka saya menggunakan aplikasi sebagai situs web dan saya tidak mendapatkan kesalahan itu lagi.

Riaz
sumber
0

Tidak ada jawaban lain yang menyelesaikan kesalahan ini untuk saya.
Saya memang menemukan solusi yang berhasil, yang saya sarankan untuk mereka yang berada dalam situasi yang sama:

  1. Tutup Visual Studio
  2. Telusuri ke Proyek \ proyek Anda \ Proyek Anda
  3. Ganti nama Web.Debug.config dan Web.Release.config
  4. Bangun kembali dan jalankan aplikasi Anda
Charles Burns
sumber
Menghapus ini ... dan sekarang mereka tidak muncul kembali.
FiringSquadWitness
0

Saya tidak pernah benar-benar memahami apa yang menyebabkannya bagi saya. Saya pikir di suatu tempat saya pasti telah kehilangan beberapa file. Saya mendapat kesalahan setelah menerbitkan ke server baru. Akhirnya saya menyalin situs dari situs kerja. Kemudian situs tersebut berfungsi dan demikian juga selanjutnya menerbitkan ke server baru.

Giles Roberts
sumber
0

Ikuti langkah ini:

  1. Membangun
  2. Manajer Konfigurasi
  3. Masukkan proyek AnyCPU
  4. Kembali untuk menghasilkan
  5. Siap, setelah ini ikuti saja langkah yang sama untuk meneruskannya ke x86 atau x64
Ragdare
sumber
0

Bagi saya, saya memiliki DLL yang disertakan dengan proyek saya yang harus dijalankan dalam lingkungan 32-bit.

Server dikonfigurasikan untuk menjalankan situs web dalam mode 32-bit, tetapi saya tidak dapat menjalankan aplikasi pada mesin 64-bit saya karena localhostfolder tersebut tidak ditentukan untuk dijalankan dalam mode 32-bit.

kode jp2
sumber
0

Saya hanya punya masalah serupa.

Alasannya adalah bahwa saya mengubah file.aspx.c dan harus melakukan pembangunan kembali yang bersih. Setelah itu semuanya bekerja.

Fannar Örn Hermannsson
sumber
0

Masalah saya adalah bahwa saya mencoba membuat aplikasi web ASPX dalam subfolder dari folder yang sudah memiliki file web.config, dan

Jadi saya membuka folder induk di Visual Studio sebagai Situs Web (Buka> Situs Web), saya dapat menambahkan halaman ASPX item baru yang tidak memiliki masalah penguraian / pemuatan.

jamespgilbert
sumber
0

Bagi saya, masalahnya hanya pada tautan tertentu (panjang) di dalam situs web dan dilacak ke URLScan yang memiliki konfigurasi default batas panjang URL 260.

James
sumber
0

Saya memiliki masalah yang sama. Mencoba untuk:

Klik kanan pada proyek dan pilih Bersihkan, lalu klik kanan lagi dan pilih Rebuild dan jalankan proyek untuk melihat apakah itu berhasil.

da Rocha Pires
sumber