Je viens de publier mon projet sur mon hôte sur Arvixe et j'obtiens cette erreur (fonctionne bien en local):
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
Qu'est-ce que ça veut dire ?
c#
asp.net-mvc
iis
asp.net-mvc-4
BjarkeCK
la source
la source
BundleConfig.RegisterBundles
appel deApplication_Start
Mon +1 va à la réponse de @ user2465004 à la place.J'ai eu ce même problème et ce n'était pas un problème de code. J'utilisais l'option de publication (pas celle FTP) et Visual Studio ne téléchargeait pas certains de mes scripts / css sur le serveur azure car ils n'étaient pas "inclus dans mon projet". Donc, localement, cela fonctionnait très bien, car les fichiers étaient là sur mon disque dur. Ce qui a résolu ce problème dans mon cas était "Projet> Afficher tous les fichiers ..." et faites un clic droit sur ceux qui n'étaient pas inclus, incluez-les et publiez à nouveau
la source
Voici un cours rapide que j'ai écrit pour rendre cela plus facile.
Pour l'utiliser, remplacez simplement ScriptBundle par BundleRelaxed dans votre code, comme dans:
la source
HostingEnvironment.MapPath
cela ne prend pas en compte lesBundleTable.VirtualPathProvider
extensions que vous utilisez peut-êtreHostingEnvironment.VirtualPathProvider
( peuvent être non par défaut et non ). Dans ce cas, vous voudrez convertir l'exemple ci-dessus pour utiliserBundleTable.VirtualPathProvider.DirectoryExists
etBundleTable.VirtualPathProvider.GetDirectory
. Les recherches de modèles de fichiers deviennent un peu plus problématiques, mais c'est un bon point de départ.J'ai rencontré le même problème aujourd'hui, c'est en fait que j'ai trouvé que certains fichiers sous ~ / Scripts ne sont pas publiés. Le problème est résolu après la publication des fichiers manquants
la source
J'ai également eu cette erreur en ayant des répertoires inexistants dans mon fichier bundles.config. Changer cela:
Pour ça:
Résolvez le problème pour moi.
la source
Comme @JerSchneid, mon problème était les répertoires vides, mais mon processus de déploiement était différent de l'OP. Je faisais un déploiement basé sur git sur Azure (qui utilise Kudu) et je ne savais pas que git n'incluait pas les répertoires vides dans le dépôt. Voir https://stackoverflow.com/a/115992/1876622
Donc, ma structure de dossiers locaux était:
Alors que tout clone / pull de mon référentiel sur le serveur distant ne recevait pas ledit répertoire vide:
La meilleure approche pour résoudre ce problème est de créer un fichier .keep dans le répertoire vide. Voir cette solution SO: https://stackoverflow.com/a/21422128/1876622
la source
J'ai eu le même problème. le problème dans mon cas était que le dossier du script avec tous les scripts bootstrap / jqueries n'était pas dans le dossier wwwroot. une fois que j'ai ajouté le dossier du script à wwwroot, l'erreur a disparu.
la source
Cela peut également être causé par une condition de concurrence lors du déploiement:
Si vous utilisez «Publier» de Visual Studio pour déployer sur un partage de fichiers réseau et cochez «Supprimer tous les fichiers existants avant la publication». (Je fais cela parfois pour m'assurer que nous ne dépendons pas encore sans le savoir des fichiers qui ont été supprimés du projet mais qui traînent toujours sur le serveur.)
Si quelqu'un accède au site avant que tous les fichiers JS / CSS requis soient redéployés, il démarre
Application_Start
etRegisterBundles
ne parvient pas à construire correctement les bundles et à lever cette exception.Mais au moment où vous obtenez cette exception et allez vérifier le serveur, tous les fichiers nécessaires sont exactement là où ils devraient être!
Cependant, l'application continue joyeusement de servir le site, générant des 404 pour toute demande de bundle, ainsi que les pages non stylisées / non fonctionnelles qui en résultent, et n'essaye jamais de reconstruire les bundles même après que les fichiers JS / CSS nécessaires soient maintenant disponibles.
Un redéploiement à l'aide de «Remplacer les fichiers correspondants par des copies locales» déclenchera le redémarrage de l'application et enregistrera correctement les ensembles cette fois.
la source
Cela peut être un vieux problème.J'ai une erreur similaire et dans mon cas, c'était le dossier Scripts qui se cachait dans mon dossier Modèles. La trace de la pile indique clairement son répertoire manquant et, par défaut, tous les scripts Java doivent se trouver dans le dossier Scripts. Cela peut ne pas s'appliquer aux utilisateurs ci-dessus.
la source
J'avais créé une nouvelle
Angular
application et écritmais j'avais créé non
services
, donc leservices
dossier n'a pas été déployé lors de la publication car il était vide. Malheureusement, vous devez mettre un fichier factice dans un dossier vide pour qu'il puisse être publiéhttps://blogs.msdn.microsoft.com/webdevelopertips/2010/04/29/tip-105-did-you-know-how-to-include-empty-directory-when-package-a-web-application/
la source
Moi aussi, j'ai été confronté au même problème. Navigué vers le chemin du fichier sous Script Folder.Copier le nom exact du fichier et apporter des modifications dans bundle.cs:
Ancien code: //Bundle.cs
Nouveau code:
la source
J'ai eu ce problème lorsque j'ai ouvert un projet VS2017 dans VS2015, créé la solution, puis téléchargé les DLL.
La reconstruction dans VS2017 et le re-téléchargement des DLL ont résolu le problème.
la source
J'ai la même question! Il semble avec IIS Express. Je change l'URL d'IIS Express pour le projet comme:
puis le problème est parti.
la source
Mon problème était que mon site n'avait aucun fichier à regrouper. Cependant, j'avais créé le site avec un modèle MVC, qui comprend des scripts jQuery. Le bundle.config faisait référence à ces fichiers et à leurs dossiers. N'ayant pas besoin des scripts, je les ai supprimés. Après avoir édité le bundle.config, tout allait bien.
la source
Tout fonctionnait bien, puis lors de modifications non liées et lors de la prochaine version, le même problème a été rencontré. J'ai utilisé le contrôle de code source pour comparer aux versions précédentes et j'ai découvert que mon dossier ../Content/Scripts avait mystérieusement été vidé!
Restauré ../Content/Scripts/*.* à partir d'une sauvegarde et tout a bien fonctionné!
ps: L'utilisation de VS2012, MVC4, avait récemment mis à jour certains packages NuGet, ce qui aurait pu jouer un rôle dans le problème, mais tout fonctionnait bien pendant un certain temps après la mise à jour, donc pas sûr.
la source
recherchez dans votre fichier BundleConfig.cs les lignes qui invoquent IncludeDirectory ()
c'est à dire:
mon répertoire Grid n'existait pas.
la source
J'ai également eu cette erreur lorsque j'ai combiné tous mes paquets séparés en un seul paquet.
Changé en
J'ai dû actualiser le pool d'applications sur le panneau de configuration de mon hébergement partagé pour résoudre ce problème.
la source
La suppression de ces lignes de code du fichier de classe bundleConfig.cs a résolu mon problème:
la source
Aucune de ces réponses ne m'a aidé puisque j'ai créé mes
jsx
fichiers de manière étrange. Mon code fonctionnait en mode localhost mais a échoué en production.Le correctif pour moi était d'aller dans le
csproj
fichier et de changer les chemins de fichier de<None ...
à<Content ...
la source
Fondamentalement, la trace de pile vous donne l'emplacement exact (comme indiqué dans la capture d'écran) dont vous avez besoin pour supprimer la ressource non existante.
la source