Acabo de publicar mi proyecto en mi host en Arvixe y obtengo este error (funciona bien localmente):
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é significa eso ?
c#
asp.net-mvc
iis
asp.net-mvc-4
BjarkeCK
fuente
fuente
BundleConfig.RegisterBundles
llamada deApplication_Start
My +1 que va a la respuesta de @ user2465004.Tuve este mismo problema y no fue un problema de código. Estaba usando la opción de publicación (no la de FTP) y Visual Studio no cargaba algunos de mis scripts / css en el servidor azure porque no estaban "incluidos en mi proyecto". Entonces, localmente funcionó bien, porque los archivos estaban allí en mi disco duro. Lo que solucionó este problema en mi caso fue "Proyecto> Mostrar todos los archivos ..." y hacer clic derecho en los que no estaban incluidos, incluirlos y volver a publicar
fuente
Aquí hay una clase rápida que escribí para facilitar esto.
Para usarlo, simplemente reemplace ScriptBundle con BundleRelaxed en su código, como en:
fuente
HostingEnvironment.MapPath
no tiene en cuenta lasBundleTable.VirtualPathProvider
extensiones que puede estar usando ( puede que no sean las predeterminadas o noHostingEnvironment.VirtualPathProvider
). Para este caso, querrá convertir el ejemplo anterior para usarBundleTable.VirtualPathProvider.DirectoryExists
yBundleTable.VirtualPathProvider.GetDirectory
. Las búsquedas de patrones de archivo se vuelven un poco más problemáticas, pero son un buen punto de partida.Hoy me encontré con el mismo problema; en realidad, descubrí que algunos de los archivos de ~ / Scripts no están publicados. El problema se resuelve después de publicar los archivos que faltan.
fuente
También obtuve este error al tener directorios inexistentes en mi archivo bundles.config. Cambiando esto:
A esto:
Resuelve el problema por mí.
fuente
Como @JerSchneid, mi problema eran los directorios vacíos, pero mi proceso de implementación era diferente al OP. Estaba haciendo una implementación basada en git en Azure (que usa Kudu) y no me di cuenta de que git no incluye directorios vacíos en el repositorio. Ver https://stackoverflow.com/a/115992/1876622
Entonces mi estructura de carpetas local era:
Mientras que cualquier clon / extracción de mi repositorio en el servidor remoto no obtenía dicho directorio vacío:
El mejor enfoque para solucionar este problema es crear un archivo .keep en el directorio vacío. Vea esta solución SO: https://stackoverflow.com/a/21422128/1876622
fuente
Tuve el mismo problema. el problema en mi caso fue que la carpeta del script con todos los scripts bootstrap / jqueries no estaba en la carpeta wwwroot. una vez que agregué la carpeta del script a wwwroot, el error desapareció.
fuente
Esto también puede deberse a una condición de carrera durante la implementación:
Si usa "Publicar" de Visual Studio para implementar en un recurso compartido de archivos de red, y marque "Eliminar todos los archivos existentes antes de publicarlos". (Hago esto a veces para asegurarme de que no estemos dependiendo sin saberlo de los archivos que se han eliminado del proyecto pero que todavía están colgados en el servidor).
Si alguien visita el sitio antes de que se vuelvan a implementar todos los archivos JS / CSS necesarios, se iniciará
Application_Start
yRegisterBundles
no podrá construir correctamente los paquetes y lanzar esta excepción.Pero para cuando obtenga esta excepción y revise el servidor, ¡todos los archivos necesarios están justo donde deberían estar!
Sin embargo, la aplicación continúa felizmente sirviendo al sitio, generando 404 para cualquier solicitud de paquete, junto con las páginas sin estilo / no funcionales que resultan de esto, y nunca intenta reconstruir los paquetes incluso después de que los archivos JS / CSS necesarios estén ahora disponibles.
Una nueva implementación usando "Reemplazar archivos coincidentes con copias locales" hará que la aplicación se reinicie y registre correctamente los paquetes esta vez.
fuente
Esto puede ser un problema antiguo. Tengo un error similar y, en mi caso, era la carpeta Scripts escondida en mi carpeta de modelos. El seguimiento de la pila dice claramente que falta el directorio y, de forma predeterminada, todos los scripts de Java deben estar en la carpeta de scripts. Es posible que esto no sea aplicable a los usuarios anteriores.
fuente
Creé una nueva
Angular
aplicación y escribípero había creado no
services
, por lo que laservices
carpeta no se implementó en la publicación porque estaba vacía. Desafortunadamente, debe colocar un archivo ficticio dentro de cualquier carpeta vacía para que se publique.https://blogs.msdn.microsoft.com/webdevelopertips/2010/04/29/tip-105-did-you-know-how-to-include-empty-directory-when-package-a-web-application/
fuente
Yo también enfrenté el mismo problema. Navegó hasta la ruta del archivo en Carpeta de secuencia de comandos. Copió el nombre exacto del archivo y realizó el cambio en bundle.cs:
Código antiguo: //Bundle.cs
Nuevo código :
fuente
Tuve este problema cuando abrí un proyecto VS2017 en VS2015, construí la solución y luego cargué las DLL.
Reconstruirlo en VS2017 y volver a cargar las DLL solucionó el problema.
fuente
¡Tengo la misma pregunta! Lo parece con IIS Express. Cambio la URL de IIS Express para Project Like:
luego el problema desapareció.
fuente
Mi problema fue que mi sitio no tenía archivos para empaquetar. Sin embargo, había creado el sitio con una plantilla MVC, que incluye scripts jQuery. Bundle.config se refería a esos archivos y sus carpetas. No necesitando los scripts, los borré. Después de editar bundle.config, todo fue bien.
fuente
Todo funcionaba bien, luego, mientras realizaba cambios no relacionados y en la siguiente compilación, se encontró con el mismo problema. Usé el control de código fuente para compararlo con versiones anteriores y descubrí que mi carpeta ../Content/Scripts se había vaciado misteriosamente.
Restaurado ../Content/Scripts/*.*desde una copia de seguridad y todo funcionó bien!
ps: El uso de VS2012, MVC4, había actualizado recientemente algunos paquetes de NuGet, por lo que podría haber jugado algún papel en el problema, pero todo funcionó bien por un tiempo después de la actualización, así que no estoy seguro.
fuente
busque en su archivo BundleConfig.cs las líneas que invoca a IncludeDirectory ()
es decir:
mi directorio Grid no existía.
fuente
También tuve este error cuando combiné todos mis paquetes separados en un solo paquete.
Cambiado a
Tuve que actualizar el grupo de aplicaciones en el panel de control de mi alojamiento compartido para solucionar este problema.
fuente
Eliminar estas líneas de código del archivo de clase bundleConfig.cs resolvió mi desafío:
fuente
Ninguna de estas respuestas me ayudó ya que creé mis
jsx
archivos de una manera extraña. Mi código estaba funcionando en modo localhost pero falló en producción.La solución para mí fue ir al
csproj
archivo y cambiar las rutas del archivo de<None ...
a<Content ...
fuente
Básicamente, el seguimiento de la pila le brinda el lugar exacto (como se resalta en la captura de pantalla) donde necesita eliminar el recurso no existente.
fuente