Di aplikasi .Net 2.0 Asp.net WebForms saya, saya memiliki Global.asax saya yang berisi kode berikut:
<%@ Application CodeBehind="Global.asax.cs" Inherits="MyNamespace.Global" Language="C#" %>
Namun ketika saya membangun saya mendapatkan kesalahan yang menyatakan-
Tidak dapat memuat jenis 'MyNamespace.Global'.
Ini tampaknya karena namespace MyNamespace (ditentukan dalam kode di belakang file Global.asax.cs) tidak terlihat oleh kompiler di file Global.asax (tidak ditampilkan di R # intellisence ..). Ini ternyata sangat sulit untuk dipecahkan ... bantuan apa pun akan dihargai!
Catatan: Global.asax dan Global.asax.cs terletak di folder yang sama.
Note2: Saat mengkompilasi dari prompt vs dengan csc dikompilasi dengan baik
Jawaban:
Satu situasi yang saya temui yang menyebabkan masalah ini adalah ketika Anda menentukan platform untuk membangun melalui "Konfigurasi Bangun".
Jika Anda menetapkan x86 sebagai platform build Anda, visual studio akan secara otomatis menetapkan bin / x86 / Debug sebagai direktori output Anda untuk project ini. Ini benar-benar valid untuk jenis proyek lain, kecuali untuk aplikasi web di mana ASP.NET mengharapkan rakitan akan di-output ke folder Bin.
Apa yang saya temukan dalam situasi saya adalah bahwa mereka menjadi output ke keduanya (Bin dan Bin / x86 / Debug), dengan pengecualian bahwa beberapa dll, dan yang paling penting yang tidak dapat dijelaskan adalah aplikasi web dll Anda, hilang dari Bin. map.
Ini jelas menyebabkan masalah kompilasi dan karenanya muncul pengecualian "Tidak dapat memuat jenis Global". Membersihkan solusi dan menghapus rakitan tidak membuat perbedaan pada build berikutnya. Solusi saya hanya mengubah jalur keluaran dalam pengaturan proyek untuk aplikasi web ke Bin (bukan bin / x86 / Debug).
sumber
Sudahkah Anda mengubah namespace proyek Anda? Saya telah melihat ini terjadi sesekali di mana saya telah mengubah namespace di dialog Properti Proyek tetapi Visual Studio belum mengubah
namespace
deklarasi di file kode yang ada.sumber
Saya baru mengenal pengembangan asp .net dan saya menghadapi masalah yang sama.
Saya memperbarui kelas sebagai
partial
kelas dan berfungsi dengan baik.sumber
Saya memulai ulang Visual Studio dan kesalahan telah hilang!
sumber
Ini satu lagi untuk buku. Tampaknya ini terjadi saat Anda meluncurkan lebih dari satu aplikasi web dari nomor port yang sama.
Pada dasarnya, saya memiliki beberapa cabang yang saya kerjakan, saya memiliki cabang utama dan cabang pementasan dan cabang rilis. Ketika saya beralih cabang ke cabang pementasan, saya perhatikan bahwa itu menggunakan konfigurasi alamat port yang sama jadi saya memilih untuk mengubahnya. Saya kemudian menerima peringatan lain bahwa reservasi ini bentrok dengan aplikasi lain yang dikonfigurasi. Server IIS Express sensitif tentang hal itu dan untuk alasan apa pun itu mem-bata konfigurasi.
Dengan hanya memilih port ketiga yang tidak terpengaruh, masalah ini hilang karena kemudian memetakan port ke pemetaan direktori baru (cabang saya terletak berbeda pada disk). Saya memperhatikan ini karena saya mencoba mengubah nama tipe yang ditunjukkan oleh
Global.asax
tetapi nama tipe tidak berubah bahkan setelah server dimulai ulang, jadi jelas, kode yang saya ubah tidak tercermin oleh penerapan IIS Express.Jadi, sebelum Anda kehilangan terlalu banyak waktu tidur karena ini, coba ubah nomor port IIS yang saat ini digunakan untuk menjalankan proyek web.
sumber
Berfungsi Baik Untuk Saya DI VS 2015.Sekarang saya dapat Menggunakan acara Global.
Global.asax
File saya memiliki Baris iniDan saya membuat file kelas
Global.asax.cs
yang ada diAppCode
folder yang terlihat sepertiSaya harap ini akan membantu
sumber
Periksa Build Action dari Global.asax.cs. Ini harus diatur ke Kompilasi.
Di Solution Explorer, klik kanan Global.asax.cs dan buka Properties. Di panel Properties, setel Build Action (sambil tidak men - debug).
Tampaknya VS 2008 tidak selalu menambahkan file .asax (.cs) dengan benar secara default.
sumber
Saya mengalami kesalahan serupa saat memiliki file
tag sebagai anak (anak pertama) dari
tag di Web.config saya . Saya telah memasukkan tag di web.config saya dalam upaya untuk mencegah warisan konfigurasi dalam aplikasi yang digunakan di bawah 'Situs Web Default' di IIS.
sumber
Dalam situasi saya, ini terkait dengan jenis proyek Situs Web / Aplikasi Web. Kami baru saja pindah ke MVC dan harus mengubahnya menjadi Aplikasi Web.
Jadi, solusinya sederhana: pilih situs web Anda di Solution Explorer dan hapus dari solusi, lalu klik kanan pada solusi dan pilih Tambah -> Proyek yang Ada ( bukan Situs Web ), kompilasi ulang situs web.
sumber
Posting lama tetapi saya mengalami kesalahan ini ketika mencoba mengonversi dari proyek situs web ke proyek aplikasi web.
Ikuti instruksi di Tautan ini . Saya masih mendapat kesalahan global.asax tetapi yang saya lakukan hanyalah menghapusnya dan menambahkannya kembali dengan mengklik kanan pada proyek di studio visual dan memilih tambahkan item baru. Tambahkan file global.asax dan itu berhasil.
sumber
Sayangnya, tidak ada yang berhasil untuk saya. Perbaikan yang saya temukan lebih spesifik untuk pengembangan, khususnya, debugging pada mesin lokal Anda. Juga sayangnya, itu tidak benar-benar memperbaiki masalah seperti yang saya harapkan, tetapi jika Anda kehabisan akal, ini mungkin membuat Anda berjalan lagi.
TL; DR: Di properti proyek, di tab web, di bawah Server, Pilih Gunakan Server Web IIS Lokal. Alamat,
sudah diisi (saya punya IIS7, .NET 4.0). Apa yang awalnya dipilih adalah "Gunakan Visual Studio Development Server" dengan lintasan Virtual "/"
Apa yang benar-benar membingungkan saya adalah kenyataan bahwa tidak ada yang berhasil, saya memeriksa semua saran yang dapat saya temukan di SO, dan tidak ada yang akan berhasil. Yang aneh adalah, kesalahan itu (tampaknya, sudah beberapa bulan sejak saya terakhir melihat) terwujud ketika saya menambahkan file ascx baru yang mirip dengan yang sudah ada yang ditambahkan dari proyek lama .net 2.0 (menurut saya) yang akan memungkinkan pengelolaan pengguna khusus dari dalam aplikasi. Itu berfungsi, dengan indah, untuk waktu yang lama, sampai saya mencoba menambahkan file baru ini. Setelah menambahkannya, dan melihat kesalahannya, saya segera mengembalikan semua perubahan, tetapi kesalahan Global.ascx tidak akan hilang, bahkan tidak menghapus seluruh proyek dan mendapatkan kembali yang terbaru dari kontrol sumber.
sumber
Saya telah mengubah solusi saya dari VS2003 ke VS2010 dan mengalami masalah saat mengonversi proyek aplikasi web.
Saya mengalami masalah yang persis sama dan tidak ada jawaban yang berhasil untuk saya.
Apa yang berhasil bagi saya adalah:
Tampaknya masalah yang saya alami selama konversi telah menghapus proyek aplikasi web dari pembangunan karena beberapa alasan.
Semoga jawaban ini membantu orang lain yang memiliki masalah yang sama ...
sumber
Jika Anda membangun kembali atau mengubah proyek dan memindahkan file dari yang lama, pastikan untuk memeriksa blok Warisi global Anda. Dalam kasus saya, proyek / solusi sebelumnya bernama intranet, dan saya telah membuatnya kembali sebagai Intranet, tetapi ketika saya memindahkan file, itu tidak menyukai huruf kecil (ya). Lakukan saja penelusuran umum nama-nama file.
sumber
Ubah GUID majelis. Ini memperbaiki banyak masalah BANYAK, saya temukan.
sumber
Saya mengalami masalah serupa di mana saya menerima kesalahan ini pada sebuah proyek.
Setelah menghabiskan beberapa waktu saya mencurigai suatu fungsi dengan kemungkinan kesalahan di Kelas .. kemudian berkomentar bahwa fungsi tertentu masalah saya teratasi.
Saya tidak tahu mengapa Visual Studio tidak memberi saya kesalahan khusus itu pada waktu debugging. Tetapi kesalahan ini mungkin terjadi karena beberapa kesalahan pada file kelas ..
sumber
Ini bekerja untuk saya: Hal pertama: tampaknya apa pun yang Anda katakan kepada studio visual, ide selalu mencari file di: bin (untuk aplikasi web dan tentu saja dalam kasus saya) Jadi, bahkan ketika saya mengatakan kepada studio visual jalur tertentu untuk memuat file, ide terus mencari jalur yang salah. Jadi saya mengubah: Build / Configuration Manager tipe output ke: Release (sebelumnya saya membersihkan solusinya, bahkan secara manual) jadi, ketika file .dll dibuat maka saya pindah secara manual ke folder "bin" di bawah proyek / solusi map. Semoga ini bisa membantu !!
sumber
Dalam kasus saya, Itu karena prosesor target saya (x64) saya mengubahnya menjadi x86 membersihkan proyek, memulai kembali VS (2012) dan membangun kembali proyek; lalu itu hilang.
sumber
Ketika saya mengalami masalah ini baru-baru ini saya mencoba semua yang disebutkan di sini tetapi tidak berhasil. Setelah merobek rambut saya, saya memutuskan untuk mencoba menghapus seluruh basis kode saya (ya, sangat putus asa!) Dan kemudian mengunduh ulang semuanya dari repositori kode saya. Setelah melakukan ini semuanya bekerja dengan baik sekali lagi.
Tampaknya solusi ekstrem tetapi saya hanya berpikir saya akan memasukkannya di sini karena belum disebutkan sebelumnya di utas ini.
(Perhatikan bahwa di lain waktu saya mengalami masalah ini, adalah ketika Global.asax mewarisi dari komponen yang perlu didaftarkan pada mesin host. Ini hilang sehingga saya mendapat masalah yang sama).
TL; DR; Jika semua jawaban di utas ini tidak berhasil untuk Anda, coba hapus lalu unduh ulang seluruh basis kode Anda!
sumber
Saya telah mengalami masalah ini beberapa kali dan dalam setiap kasus saya sedang membangun kembali komputer atau beralih ke komputer baru. Langkah pertama saya (selain memperbarui mesin dan menginstal Visual Studio) adalah menarik proyek saya dari Git dan mengujinya.
Saya mengalami kesalahan ini setiap kali karena saya mencoba mengakses kode lokal saya sebelum menyusunnya. Anda lihat, saya memiliki pengaturan Git dan Subversion untuk mengabaikan folder bin / build saya, jadi setelah menarik dari repositori saya, saya lupa menjalankan build yang menarik paket yang diperlukan dari Nuget (karena saya meminta Git / SVN mengabaikannya juga) dan membuat DLL diperlukan untuk benar-benar menjalankan aplikasi saya.
Saya ragu ini akan menyelesaikan masalah kebanyakan orang, tetapi saya tidak melihatnya di daftar solusi potensial jadi saya pikir saya akan menambahkannya.
sumber
Dalam kasus saya, saya telah menambahkan Global.asax ke proyek WCF untuk bereksperimen dengannya, tetapi memutuskan untuk menghapusnya. Saya menghapusnya dari Solution Explorer, tetapi karena masih ada di dalam folder, pipa masih menemukannya dan menyebabkan kesalahan ini.
Saya menghapus Global.ASAX dan GLobal.asax.cs dari sistem file dan itu menyelesaikan kesalahan.
sumber
Telah berada dalam game pengembangan selama hampir 20 tahun, kastanye ini terus mengganggu saya di banyak proyek.
Karena itu, hari ini ketika mengalami masalah yang sama ini lagi, terhadap proyek lain, saya memutuskan untuk menyelidiki lebih lanjut dan saya yakin ini terkait dengan lokasi folder Bin ... atau lebih khusus lagi, jalur keluaran dari folder bin.
Bagi saya, untuk aplikasi web berbasis layanan sederhana yang dikonfigurasi untuk menjalankan / debug melalui IIS, itu mengubah jalur keluaran dari bin \ debug ke bin \ yang menyelesaikannya
Sangat berharap ini membantu.
sumber
Saya bingung dengan masalah yang sama. Saya mencoba untuk menghapus dan dan
global.asax
(VS2010 ditutup sebelum menambahkan). Membersihkan proyek / solusi, memeriksa setiap perubahan dalam konfigurasi aplikasi web dan hal-hal lain yang telah berfungsi untuk orang lain di sini di utas SO. Saya akhirnya membersihkan solusinya, menghapus folder bin / obj dan menghentikan semua server pengembangan VS2010 yang berjalan kemudian saya mengembalikan semua perubahan kembali dan menemukan aplikasi berjalan lagi. Saya membuat ulang hal yang sama dan sekarang berfungsi dengan baik.Terjadi lagi dan kali ini solusi ini berhasil untuk saya.
sumber
buka manajer konfigurasi di bawah properti untuk solusi Anda. Kemudian pastikan semua proyek dan sedang dibangun, dan ini tidak akan menjadi masalah.
sumber
Saya harus menghapus (duplikat) file dari disk yang tidak termasuk dalam proyek. Sepertinya duplikat itu disebabkan oleh penggantian nama yang gagal. Nama file berbeda, tetapi kode yang sama.
Setelah menghapus semua file oof. * Saya dapat memindai.
sumber
dalam kasus saya itu adalah IISExpress yang menunjuk ke port yang sama dengan IIS untuk menyelesaikannya
dan cari portnya, Anda akan menemukan
<site>...</site>
tag yang perlu Anda hapus atau beri komentarsumber
Saya mengalami masalah ini saat menerapkan hanya di server prod. Di lingkungan saya yang lain, ini berfungsi ... Saya baru saja menghapus hal-hal di folder bin kemudian menerbitkan ulang dan berfungsi setelah itu.
sumber
Jika Anda menggunakan Visual Studio, Anda mungkin mencoba menjalankan aplikasi dalam Mode Rilis, coba ubah ke Mode Debug.
sumber
Saya telah mencoba untuk membangun kembali solusi dan menghapus file Sementara ASP.NET tidak berhasil.
Namun setelah menjalankan IISRESET error tersebut menghilang.
Pembaruan : Saya mengalami masalah yang sama lagi 1 bulan kemudian. Saya telah memperhatikan bahwa MyWebsite.DLL ada di folder bin, tetapi tidak ada di File ASP.NET Sementara (C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files). Saya sudah mencoba beberapa hal, yang disarankan untuk ini dan "Pesan Kesalahan Parser: Tidak dapat memuat jenis" dalam pertanyaan Global.asax (saya sebenarnya lupa tentang jawaban saya sendiri), tetapi kesalahan tersebut menghilang lagi setelah IISRESET
sumber
Dalam kasus saya VS 2017, beban solusi ringan menyebabkan masalah ini. Saya menonaktifkannya & memulai ulang VS kemudian membangun kembali solusi saya & masalah hilang.
sumber
Hanya ingin menambahkan dua sen saya. Saya menerima kesalahan yang sama, dan saya mencoba semua saran tetapi tidak berhasil. Situasi saya mungkin berbeda?
Ternyata, file "AssemblyInfo.cs" yang dibuat secara otomatis memiliki beberapa spasi tidak relevan, yang mencegah saya meluncurkan aplikasi web (melalui debug). Berikut tampilan file tersebut:
Setelah menghabiskan ruang di AssemblyCompany dan AssemblyCopyright, saya akhirnya dapat membangun dan meluncurkan proyek tersebut.
Teramati di lingkungan berikut: --Visual Studio 2017 Community versi 15.3.0 --Win 7 x64 Enterprise - New Project> Visual C #> Web> ASP.NET Web Application> Web Forms
sumber