saya baru saja menerbitkan proyek saya ke host saya di Arvixe dan mendapatkan kesalahan ini (Bekerja dengan baik di lokal):
Server Error in '/' Application.
Directory does not exist.
Parameter name: directoryVirtualPath
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentException: Directory does not exist.
Parameter name: directoryVirtualPath
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[ArgumentException: Directory does not exist.
Parameter name: directoryVirtualPath]
System.Web.Optimization.Bundle.IncludeDirectory(String directoryVirtualPath, String searchPattern, Boolean searchSubdirectories) +357
System.Web.Optimization.Bundle.Include(String[] virtualPaths) +287
IconBench.BundleConfig.RegisterBundles(BundleCollection bundles) +75
IconBench.MvcApplication.Application_Start() +128
[HttpException (0x80004005): Directory does not exist.
Parameter name: directoryVirtualPath]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +9160125
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +131
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +194
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +339
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +253
[HttpException (0x80004005): Directory does not exist.
Parameter name: directoryVirtualPath]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9079228
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +97
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +256
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.237
Apa artinya ?
c#
asp.net-mvc
iis
asp.net-mvc-4
BjarkeCK
sumber
sumber
BundleConfig.RegisterBundles
panggilan dariApplication_Start
+1 Saya malah beralih ke jawaban @ user2465004.Saya memiliki masalah yang sama dan itu bukan masalah kode. Saya menggunakan opsi terbitkan (bukan yang FTP) dan Visual Studio tidak mengunggah beberapa skrip / css saya ke server biru karena mereka tidak "termasuk dalam proyek saya". Jadi, secara lokal itu berfungsi dengan baik, karena file ada di hard drive saya. Apa yang memecahkan masalah ini dalam kasus saya adalah "Proyek> Tampilkan semua file ..." dan klik kanan file yang tidak disertakan, sertakan dan publikasikan lagi
sumber
Berikut adalah kelas singkat yang saya tulis untuk mempermudah.
Untuk menggunakannya, cukup ganti ScriptBundle dengan BundleRelaxed di kode Anda, seperti di:
sumber
HostingEnvironment.MapPath
tidak mempertimbangkanBundleTable.VirtualPathProvider
ekstensi yang mungkin Anda gunakan ( mungkin non-default dan bukanHostingEnvironment.VirtualPathProvider
). Untuk kasus ini, Anda ingin mengubah contoh di atas menjadi menggunakanBundleTable.VirtualPathProvider.DirectoryExists
danBundleTable.VirtualPathProvider.GetDirectory
. Pencarian Pola File menjadi sedikit lebih bermasalah, tetapi tempat yang baik untuk memulai.Saya mengalami masalah yang sama hari ini, sebenarnya saya menemukan bahwa beberapa file di bawah ~ / Scripts tidak dipublikasikan. Masalah teratasi setelah saya menerbitkan file yang hilang
sumber
Saya juga mendapat kesalahan ini dengan memiliki direktori yang tidak ada di file bundles.config saya. Mengubah ini:
Untuk ini:
Pecahkan masalah untuk saya.
sumber
Seperti @JerSchneid, masalah saya adalah direktori kosong, tetapi proses penerapan saya berbeda dari OP. Saya melakukan penerapan berbasis git di Azure (yang menggunakan Kudu), dan tidak menyadari bahwa git tidak menyertakan direktori kosong di repo. Lihat https://stackoverflow.com/a/115992/1876622
Jadi struktur folder lokal saya adalah:
Sedangkan klon / tarik apa pun dari repositori saya di server jarak jauh tidak mendapatkan direktori kosong:
Pendekatan terbaik untuk memperbaikinya adalah dengan membuat file .keep di direktori kosong. Lihat solusi SO ini: https://stackoverflow.com/a/21422128/1876622
sumber
Saya memiliki masalah yang sama. masalah dalam kasus saya adalah bahwa folder skrip dengan semua skrip bootstrap / jqueries tidak ada di folder wwwroot. setelah saya menambahkan folder skrip ke wwwroot, kesalahannya hilang.
sumber
Ini juga dapat disebabkan oleh kondisi balapan saat menerapkan:
Jika Anda menggunakan "Publikasikan" Visual Studio untuk menyebarkan melalui jaringan berbagi file, dan centang "Hapus semua file yang ada sebelum menerbitkan." (Saya melakukan ini kadang-kadang untuk memastikan bahwa kita secara tidak sadar masih bergantung pada file yang telah dihapus dari proyek tetapi masih nongkrong di server.)
Jika seseorang mengunjungi situs sebelum semua file JS / CSS yang diperlukan diterapkan kembali, itu akan dimulai
Application_Start
danRegisterBundles
yang akan gagal untuk membuat bundel dengan benar dan memunculkan pengecualian ini.Tetapi pada saat Anda mendapatkan pengecualian ini dan pergi memeriksa server, semua file yang diperlukan ada di tempat yang seharusnya!
Namun, aplikasi dengan senang hati terus melayani situs, menghasilkan 404 untuk permintaan bundel apa pun, bersama dengan halaman tidak bergaya / tidak berfungsi yang dihasilkan dari ini, dan tidak pernah mencoba untuk membangun kembali bundel bahkan setelah file JS / CSS yang diperlukan sekarang tersedia.
Penerapan ulang menggunakan "Ganti file yang cocok dengan salinan lokal" akan memicu aplikasi untuk memulai ulang dan mendaftarkan bundel dengan benar kali ini.
sumber
Ini mungkin masalah lama, saya memiliki kesalahan serupa dan dalam kasus saya itu adalah folder Skrip bersembunyi di Folder Model saya. Pelacakan tumpukan dengan jelas mengatakan Direktori yang hilang dan secara default semua Java Scripts harus ada di Folder Skrip. Ini mungkin tidak berlaku untuk pengguna di atas.
sumber
Saya telah membuat
Angular
aplikasi baru dan menulistapi saya telah membuat tidak
services
, jadiservices
folder tidak digunakan untuk mempublikasikan karena kosong. Sayangnya, Anda harus meletakkan file dummy di dalam folder kosong mana pun agar bisa dipublikasikanhttps://blogs.msdn.microsoft.com/webdevelopertips/2010/04/29/tip-105-did-you-know-how-to-include-empty-directory-when-package-a-web-application/
sumber
Saya juga menghadapi masalah yang sama. Menjelajah ke jalur file di bawah Folder Script. Menyalin nama file yang tepat dan membuat perubahan di bundle.cs:
Kode Lama: //Bundle.cs
Kode Baru:
sumber
Saya mengalami masalah ini ketika saya membuka proyek VS2017 di VS2015, membangun solusi dan kemudian mengunggah DLL.
Membangun kembali di VS2017 dan mengunggah ulang DLL memperbaiki masalah.
sumber
Saya mendapat pertanyaan yang sama! Sepertinya dengan IIS Express. Saya mengubah URL IIS Express untuk Proyek Seperti:
lalu masalahnya hilang.
sumber
Masalah saya adalah bahwa situs saya tidak memiliki file untuk digabungkan. Namun, saya telah membuat situs dengan template MVC, yang menyertakan skrip jQuery. Bundle.config merujuk ke file tersebut dan foldernya. Tidak membutuhkan skrip, saya menghapusnya. Setelah mengedit bundle.config, semuanya baik-baik saja.
sumber
Semua berfungsi dengan baik, lalu saat membuat perubahan yang tidak terkait dan pada build berikutnya menemukan masalah yang sama. Menggunakan kontrol sumber untuk membandingkan dengan versi sebelumnya dan menemukan bahwa folder ../Content/Scripts saya telah dikosongkan secara misterius!
Dipulihkan ../Content/Scripts/*.*dari cadangan dan semuanya bekerja dengan baik!
ps: Menggunakan VS2012, MVC4, baru-baru ini memperbarui beberapa paket NuGet, jadi itu mungkin telah memainkan beberapa bagian dalam masalah ini, tetapi semuanya berjalan dengan baik untuk beberapa saat setelah pembaruan, jadi tidak yakin.
sumber
lihat file BundleConfig.cs Anda untuk baris yang memanggil IncludeDirectory ()
yaitu:
direktori Grid saya tidak ada.
sumber
Saya juga mengalami kesalahan ini ketika saya menggabungkan semua bundel saya yang terpisah menjadi satu bundel.
Berubah menjadi
Saya harus menyegarkan kumpulan aplikasi di panel kontrol hosting bersama saya untuk memperbaiki masalah ini.
sumber
Menghapus baris kode ini dari file kelas bundleConfig.cs menyelesaikan tantangan saya:
sumber
Tak satu pun dari jawaban ini membantu saya sejak saya membuat
jsx
file dengan cara yang aneh. Kode saya berfungsi dalam mode localhost tetapi gagal dalam produksi.Perbaikan bagi saya adalah masuk ke
csproj
file dan mengubah jalur file dari<None ...
menjadi<Content ...
sumber
Pada dasarnya pelacakan tumpukan memberi Anda tempat yang tepat (seperti yang disorot dalam tangkapan layar) yang Anda perlukan untuk menghapus sumber daya yang tidak ada.
sumber