2009-04-27 43 views
8

estoy ejecutando IIS 6.0 en Windows 2003 y comenzó a recibir este error:IIS 6.0 y ASP.NET - No se pudo escribir en el archivo de salida ... El nombre de directorio no es válido

Compiler Error Message: CS0016: Could not write to output file 'c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\7382c13f\ea9b3ff7\App_global.asax.zodyof_q.dll' -- 'The directory name is invalid. '

I' he comprobado todos los permisos, y todo es como debe ser; además, el mensaje de error no menciona los permisos. He intentado el siguiente hecho:

  • Siguiendo las instrucciones de esta [obsoleta] artículo de KB: http://support.microsoft.com/kb/825791/en-us
  • Reparación de la instalación de la versión 3.5 de .NET Framework, a continuación, reiniciar
  • Eliminación de los contenidos de c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root, a continuación, ejecutar iisreset
  • Restablecimiento de los permisos en c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root, a continuación, ejecutar iisreset
  • Restablecimiento de los permisos en c:\WINDOWS\TEMP, a continuación, ejecutar iisreset.

¿Alguna sugerencia?


notas Otros/respuestas:

  • el servicio de indexación está desactivada.
+0

¿Cómo se obtiene ese nombre de archivo? –

+0

No estoy seguro de seguir - Lo copié de la página de error resultante si es eso lo que quieres decir. –

+0

Esta respuesta al superusuario me solucionó el problema: http://superuser.com/a/638462/98557 –

Respuesta

2

Use SysInternals FileMon (o ProcMon si lo desea) para ver el archivo real del que está quejándose. Puede restringirlo a solo supervisar IIS si tiene un servidor ocupado, aunque comenzaría con todos los procesos y solo capturaría unos segundos de salida.

Antes de ejecutar, asegúrese de que IIS se haya restablecido usando iisreset/restart para que el error no se guarde en caché desde antes.

Ryan

1

bien, cuando se reparó la instalación Qué quiere decir aspnet_regiis -u/aspnet_regiis -i? eso arreglaría los permisos de disco.

Podría ser su virusscanner; excluya sus carpetas .net temporales/inetpub si puede y si es seguro.

0

que recibieron el mismo error. El software antivirus/de seguridad (McAfee Viruscan Enterprise) impedía que la herramienta de estudio visual csc.exe compilara código de forma dinámica y creara el dll del modelo de datos de la entidad en la carpeta del directorio que se encuentra debajo de la carpeta del directorio de Windows. Hay una sección en McAffee llamada protección de acceso que tiene una regla llamada Protección máxima que prohíbe crear archivos ejecutables en la carpeta del directorio de Windows. Simplemente deshabilite temporalmente la regla o la protección de acceso para compilar el sitio web con éxito.

2

Tuve el mismo error al ejecutar la aplicación web IIS 7.0/Vista Ultimate/.NET 2.0. Intenté establecer permisos de "Control total" en la carpeta temporal para el usuario de SERVICIO DE RED (haga clic con el botón derecho en la carpeta c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727, Propiedades, pestaña Seguridad) y apagué el antivirus y el UAC, pero no sirvió de nada.

Pero esto funcionó como magia: Abra el Administrador IIS -> Seleccione "Ver grupos de aplicaciones" desde el menú derecho -> Seleccione "Configuración avanzada" -> Configure su nombre de usuario (y contraseña) en la propiedad "Identidad" -> Reinicie IIS

Si esto no funciona, además, comprobar que usted es un propietario de c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727 carpeta (clic derecho, Propiedades, pestaña Seguridad, Avanzado, ficha propietario)

+0

Ojalá pudiera hacer más. Excelente gracias :) –

0

Aquí está la solución final :)


  1. Primero conceda todos los permisos a la cuenta de ASPNET, a la cuenta de SERVICIO DE RED a la carpeta "Archivos temporales de ASP.NET" en cualquier marco que esté utilizando.
    como archivos temporales C: \ windows \ microsoft.net \ framework \ v2.xxx \ ASP.NET.

  2. Compruebe la carpeta temporal configurada para su máquina en las variables de entorno TEMP y TEMP. Para esa carpeta, también otorgue todos los permisos a la cuenta de ASPNET, SERVICIO DE RED. Restablecer el IIS Debería estar funcionando bien.

3
  1. Crear una carpeta temporal bajo %SystemRoot%, y luego se lo nombra Temp.
  2. Otorgue permisos completos en la carpeta Temp a la cuenta de usuario aspnet en .NET Framework 1.0 o a la cuenta de usuario NETWORK SERVICE en .NET Framework 1.1.
  3. Haga clic con el botón derecho en Mi PC, y luego haga clic en Propiedades.
  4. En la pestaña Avanzado, haga clic en Variables de entorno.
  5. Seleccione la variable TEMP en Variables del sistema y luego haga clic en Editar.
  6. Escriba %SystemRoot%\TEMP en el cuadro Valor de variable y luego haga clic en Aceptar.
  7. Repita los pasos 5 y 6 para editar la variable TMP. Haga clic en Aceptar dos veces.
  8. Haga clic en Inicio y luego en Ejecutar.

Para reiniciar Internet Information Services (IIS), escriba iisreset en el símbolo del sistema.

+0

Gracias, esto solucionó mi problema. –

0

Desde windows server 2003 x64, IIS6, net 4.0, la aplicación ASP que se presentó con el error:

Compiler Error Message: CS0016: Could not write to output file 'c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\7382c13f\ea9b3ff7\App_global.asax.zodyof_q.dll' -- 'The directory name is invalid. '

Se resolvió cuando creé el DIR

d:\temp

idea de por qué D: \ temp era importante, pero voy a actualizar esta respuesta con una razón tan pronto como sé.

permisos en el DIR fueron:

admin full

creator owner special

system full

users read&execute/list/read

Sin IIS se definió el permiso de usuario específico.

Trabajando para migrar al host IIS7 pero pensé que esta respuesta podría ser útil para alguien.

Cuestiones relacionadas