Я только что опубликовал свой проект на своем хосте на Arvixe и получил эту ошибку (работает нормально локально):
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
Что это означает ?
c#
asp.net-mvc
iis
asp.net-mvc-4
BjarkeCK
источник
источник
BundleConfig.RegisterBundles
вызов отApplication_Start
My +1, который вместо этого переходит к ответу @ user2465004.У меня была такая же проблема, и это не было проблемой с кодом. Я использовал параметр публикации (а не FTP), а Visual Studio не загружала некоторые из моих скриптов / CSS на сервер Azure, потому что они не были «включены в мой проект». Итак, локально он работал нормально, потому что файлы были на моем жестком диске. Что решило эту проблему в моем случае, так это «Проект> Показать все файлы ...» и щелкните правой кнопкой мыши те, которые не были включены, включите их и опубликуйте снова.
источник
Вот небольшой урок, который я написал, чтобы упростить задачу.
Чтобы использовать его, просто замените ScriptBundle на BundleRelaxed в своем коде, как в:
источник
HostingEnvironment.MapPath
не учитываетBundleTable.VirtualPathProvider
расширения, которые вы можете использовать ( могут быть нестандартными и нетHostingEnvironment.VirtualPathProvider
). В этом случае вам нужно преобразовать приведенный выше пример для использованияBundleTable.VirtualPathProvider.DirectoryExists
иBundleTable.VirtualPathProvider.GetDirectory
. Поиск по шаблонам файлов становится немного более проблематичным, но это хорошее место для начала.Сегодня я столкнулся с той же проблемой, на самом деле я обнаружил, что некоторые файлы в ~ / Scripts не публикуются. Проблема решена после того, как я опубликовал недостающие файлы
источник
Я также получил эту ошибку из-за наличия несуществующих каталогов в моем файле bundles.config. Изменяя это:
К этому:
Решите проблему за меня.
источник
Как и @JerSchneid, моя проблема заключалась в пустых каталогах, но мой процесс развертывания отличался от OP. Я выполнял развертывание на основе git в Azure (который использует Kudu) и не понимал, что git не включает пустые каталоги в репо. См. Https://stackoverflow.com/a/115992/1876622
Итак, моя локальная структура папок была:
Принимая во внимание, что любое клонирование / извлечение моего репозитория на удаленном сервере не получало указанный пустой каталог:
Лучший способ исправить это - создать файл .keep в пустом каталоге. См. Это решение SO: https://stackoverflow.com/a/21422128/1876622
источник
Я была такая же проблема. В моем случае проблема заключалась в том, что папки сценария со всеми сценариями начальной загрузки / jqueries не было в папке wwwroot. как только я добавил папку сценария в wwwroot, ошибка исчезла.
источник
Это также может быть вызвано состоянием гонки при развертывании:
Если вы используете Visual Studio «Опубликовать» для развертывания через сетевой файловый ресурс и установите флажок «Удалить все существующие файлы перед публикацией». (Иногда я делаю это, чтобы убедиться, что мы не по незнанию все еще зависим от файлов, которые были удалены из проекта, но все еще зависают на сервере.)
Если кто-то зайдет на сайт до того, как все необходимые файлы JS / CSS будут повторно развернуты, он запустится
Application_Start
иRegisterBundles
не сможет правильно построить пакеты и выбросить это исключение.Но к тому времени, когда вы получите это исключение и отправитесь проверять сервер, все необходимые файлы окажутся там, где они должны быть!
Тем не менее, приложение продолжает обслуживать сайт, генерируя 404 для любого запроса пакета вместе с нестилизованными / нефункциональными страницами, которые возникают в результате этого, и никогда не пытается перестроить пакеты даже после того, как необходимые файлы JS / CSS теперь доступны.
Повторное развертывание с использованием функции «Заменить совпадающие файлы локальными копиями» вызовет перезапуск приложения и на этот раз правильную регистрацию пакетов.
источник
Это может быть старая проблема. У меня похожая ошибка, и в моем случае это была папка Scripts, скрывающаяся в моей папке Models. Трассировка стека четко указывает на отсутствие каталога, и по умолчанию все сценарии Java должны находиться в папке сценариев. Это может быть неприменимо к вышеуказанным пользователям.
источник
Я создал новое
Angular
приложение и написално я не создал
services
, поэтомуservices
папка не была развернута при публикации, так как она была пустой. К сожалению, вы должны поместить фиктивный файл в любую пустую папку, чтобы его опубликовать.https://blogs.msdn.microsoft.com/webdevelopertips/2010/04/29/tip-105-did-you-know-how-to-include-empty-directory-when-package-a-web-application/
источник
Я тоже столкнулся с той же проблемой. Перешел к пути к файлу в папке Script Folder. Скопировал точное имя файла и внес изменения в bundle.cs:
Старый код: //Bundle.cs
Новый код:
источник
У меня возникла эта проблема, когда я открыл проект VS2017 в VS2015, построил решение, а затем загрузил библиотеки DLL.
Восстановление его в VS2017 и повторная загрузка библиотек DLL устранили проблему.
источник
У меня такой же вопрос! Вроде с IIS Express. Я меняю URL-адрес IIS Express для Project Like:
тогда проблема ушла.
источник
Моя проблема заключалась в том, что на моем сайте не было файлов для объединения. Однако я создал сайт с шаблоном MVC, который включает скрипты jQuery. Пакет bundle.config относится к этим файлам и их папкам. Не нуждаясь в скриптах, я их удалил. После редактирования bundle.config все было хорошо.
источник
Все работало нормально, затем при внесении несвязанных изменений и при следующей сборке возникла та же проблема. Использовал систему управления версиями для сравнения с предыдущими версиями и обнаружил, что моя папка ../Content/Scripts загадочным образом опустела!
Восстановил ../Content/Scripts/*.* из резервной копии и все заработало!
ps: Используя VS2012, MVC4 недавно обновил некоторые пакеты NuGet, так что это могло сыграть некоторую роль в проблеме, но все работало некоторое время после обновления, поэтому не уверен.
источник
посмотрите в свой файл BundleConfig.cs строки, которые вызывают IncludeDirectory ()
то есть:
моя грид-директория не существует.
источник
У меня также была эта ошибка, когда я объединил все свои отдельные пакеты в один.
Изменился на
Мне пришлось обновить пул приложений на панели управления моего общего хостинга, чтобы решить эту проблему.
источник
Удаление этих строк кода из файла класса bundleConfig.cs решило мою проблему:
источник
Ни один из этих ответов не помог мне, поскольку я создавал свои
jsx
файлы странным образом. Мой код работал в режиме localhost, но не работал в продакшене.Для меня исправление заключалось в том, чтобы войти в
csproj
файл и изменить пути<None ...
к файлам с на<Content ...
источник
В основном трассировка стека дает вам точное место (как показано на скриншоте), в котором вам нужно удалить несуществующий ресурс.
источник