2010-02-18 19 views
8

Estoy harto de este error. Busqué en toda la web e intenté todas las sugerencias posibles sobre este error que pude encontrar.publicar el sitio web asp.net dar "Referencia de objeto no establecida en una instancia de un objeto". error

  1. Eliminar app_code, compilar, agregar archivos de nuevo, publicar. (No funcionaba)
  2. eliminar archivos temporales de ASP.NET (no funcionaba)

Al final, incluso probé la línea de comandos y recibir la siguiente StackTrace.

error ASPRUNTIME: Object reference not set to an instance of an object. 

[NullReferenceException]: Object reference not set to an instance of an object. 
    at System.Web.Compilation.BuildManager.CopyPrecompiledFile(VirtualFile vfile, 
String destPhysicalPath) 
    at System.Web.Compilation.BuildManager.CopyStaticFilesRecursive(VirtualDirect 
ory sourceVdir, String destPhysicalDir, Boolean topLevel) 
    at System.Web.Compilation.BuildManager.CopyStaticFilesRecursive(VirtualDirect 
ory sourceVdir, String destPhysicalDir, Boolean topLevel) 
    at System.Web.Compilation.BuildManager.CopyStaticFilesRecursive(VirtualDirect 
ory sourceVdir, String destPhysicalDir, Boolean topLevel) 
    at System.Web.Compilation.BuildManager.PrecompileAppInternal(VirtualPath star 
tingVirtualDir) 
    at System.Web.Compilation.BuildManager.PrecompileApp(VirtualPath startingVirt 
ualDir) 
    at System.Web.Compilation.BuildManager.PrecompileApp(ClientBuildManagerCallba 
ck callback) 
    at System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManagerCa 
llback callback) 
    at System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManagerCa 
llback callback) 
    at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuil 
dManagerCallback callback, Boolean forceCleanBuild) 
    at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuil 
dManagerCallback callback) 
    at System.Web.Compilation.Precompiler.Main(String[] args) 

que utilizó la siguiente línea de comandos:

aspnet_compiler.exe -p d:\code\websites\brokerweb -v/d:\code\websites\published -f -c -errorstack -u 
+0

¿Ha intentado regresar a la última revisión conocida en el control de código fuente donde todavía funcionaba, y trató de publicar eso? Me gustaría eliminar cualquier posibilidad de que tu código contra el código de publicación visual studio sea el problema. –

+0

sí, incluso eso ya no funciona. mismo problema – Johan

Respuesta

5

Esto suele suceder cuando un archivo *.dll.refresh en los bin puntos de directorio a un lugar que ya no está disponible. Eliminar los archivos *.dll.refresh debería resolver el problema.

2

Tuve un problema similar al compilar vistas en MVC WebApplication. NullReferenceException se lanzó solo al generar una solución dentro de VS o MSBuild. La ejecución de aspnet_compiler.exe desde la línea de comandos no contenía errores.

error ASPRUNTIME: Object reference not set to an instance of an object. 

[NullReferenceException]: Object reference not set to an instance of an object. 
    at System.Web.Compilation.DiskBuildResultCache.CacheBuildResult(String cacheKey, BuildResult result, Int64 hashCode, DateTime utcStart) 
    at System.Web.Compilation.BuildManager.CacheBuildResultInternal(String cacheKey, BuildResult result, Int64 hashCode, DateTime utcStart) 
    at System.Web.Compilation.WebDirectoryBatchCompiler.CacheAssemblyResults(AssemblyBuilder assemblyBuilder, CompilerResults results) 
    at System.Web.Compilation.WebDirectoryBatchCompiler.CompileAssemblyBuilder(AssemblyBuilder builder) 
    at System.Web.Compilation.WebDirectoryBatchCompiler.<CompileNonDependentBuildProviders>b__0(AssemblyBuilder assemblyBuilder) 
    at System.Web.Compilation.CompilationUtil.CompileParallel(ICollection assemblyBuilders, Action`1 action) 
    at System.Web.Compilation.WebDirectoryBatchCompiler.CompileNonDependentBuildProviders(ICollection buildProviders) 
    at System.Web.Compilation.WebDirectoryBatchCompiler.Process() 
    at System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(VirtualDirectory vdir, Boolean ignoreErrors) 
    at System.Web.Compilation.BuildManager.BatchCompileWebDirectory(VirtualDirectory vdir, VirtualPath virtualDir, Boolean ignoreErrors) 
    at System.Web.Compilation.BuildManager.PrecompileWebDirectoriesRecursive(VirtualDirectory vdir, Boolean topLevel) 
    at System.Web.Compilation.BuildManager.PrecompileWebDirectoriesRecursive(VirtualDirectory vdir, Boolean topLevel) 
    at System.Web.Compilation.BuildManager.PrecompileAppInternal(VirtualPath startingVirtualDir, IEnumerable`1 excludedVirtualPaths) 
    at System.Web.Compilation.BuildManager.PrecompileApp(VirtualPath startingVirtualDir, IEnumerable`1 excludedVirtualPaths) 
    at System.Web.Compilation.BuildManager.PrecompileApp(ClientBuildManagerCallback callback, IEnumerable`1 excludedVirtualPaths) 
    at System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManagerCallback callback, List`1 excludedVirtualPaths) 
    at System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManagerCallback callback, List`1 excludedVirtualPaths) 
    at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuildManagerCallback callback, Boolean forceCleanBuild) 
    at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuildManagerCallback callback) 
    at System.Web.Compilation.Precompiler.Main(String[] args) 

Después de un día de buscar respuestas en la web y descubrir con ProcessMonitor, descubrí que estaba sucediendo cuando intentó compilador para compilar el archivo ReportService.svc. Si se eliminó este archivo o se renombró la extensión, todo se compiló muy bien. Resolución muy extraña problema solucionado de compilación de archivos svc. Hace unos días, inicié la compresión ntfs en este proyecto para ahorrar algo de espacio. Y este fue el único problema. Cuando se eliminó el atributo de compresión ntfs de la carpeta del sitio web, se resolvió el problema NullReferenceException.

7

Tuve la misma experiencia y eliminando el indicador comprimido del árbol del directorio de la solución, establecí el compilador funcionando nuevamente.

+1

Si pudiera votar esto mil veces, lo haría. Esta fue la causa para mí. – Alexis

+0

¿dónde encuentras esta opción? – ganjan

+0

@ganjan está en las propiedades avanzadas para la carpeta proyecto/solución. – Sam

-2

actualiza tu Visual Studio a VS 2013. resolvió el problema por mí. :)

1

Recientemente he encontrado este error. Como @samiz se mencionó anteriormente, primero debe borrar todo * .dll.Refresh después de esa compilación y publicar su sitio web. Sin embargo, a veces, como sucede conmigo, cuando ha eliminado * .dll.refresh, luego publique su sitio web, el error le recuerda como de costumbre. He hecho muchas pruebas, pero nada cambia.

También creo una nueva carpeta y copio todos los * .dlls que necesito para mi sitio web. A continuación, elimine todo * .dll dentro de la carpeta Bin y luego agréguelos de a uno.

Finalmente, reinicio Mi PC, y luego intento publicar mi sitio web. Créanme o no, funciona bien y no ocurrió ningún error.

1

Tuve un problema similar. La aplicación se compilaría y se ejecutaría en el IDE, pero no se publicaría; conking out en la etapa 'merge dll into single assembly'. Después de investigar aspnet_merge.exe encontré que el problema se resolvió desactivando la casilla de verificación 'emitir información de depuración' en las opciones de publicación.

Puede que no sea una solución "limpia" para el problema, pero es una solución.

Espero que esto ayude.

Andrew

1

Eliminación de todos los archivos * .compiled de la carpeta Bin de la página web funciona para mí. :)

Estos archivos son seguros de eliminar y se crean durante la precompilación. Para obtener más información, consulte este MSDN link.

8

Este error me estaba ocurriendo cuando traté de compilar el proyecto con MSBUILD: se compilaría bien en Visual Studio e incluso depuraría en mi navegador local. La opción Publicar dentro de VS también funcionó. Pero la línea de comandos MSBUILD estaba causando el error del proyecto cada vez.

Me las arreglé para solucionar este problema en VS 2012 abriendo las páginas de propiedades en mi sitio web, abriendo la pestaña 'MSBuild Options', desmarcando la opción 'Permitir que este sitio compilable sea actualizable' y luego 'guardar todo' .

+1

Paso 2 días enteros para resolver el problema, pero funcionó a las mil maravillas. Pero aún no estoy seguro, ¿por qué 'Permitir que este sitio precompilado sea actualizable' está causando este error? – Amit

4

Sé que esto es una entrada antigua, pero por si acaso alguien se encuentra este útil:

La causa de este problema para mí fue el antivirus de McAfee

ASPNETCOMPILER (0,0): Error ASPRUNTIME: Referencia de objeto no establecida en una instancia de un objeto

+0

Mi McAfee estaba causando esto en nuestra red de corp. Hice que nuestro AV lo arreglara, y el problema desapareció. Luego se fue de vacaciones, y el escáner AV comenzó a escanear el directorio de nuevo (actualización de GPO). Eff Word. –

0

En mi caso, borrando las cookies resolvió el problema.

El StackTrace había mencionado algo de autorización y cookies. Abrí la aplicación web en InCognito mode (que no persiste en la tienda de cookies) y encontré la aplicación funcionando.

Espero que ayude a alguien.

0

Una vez más, esta es una entrada antigua, pero no tenía la siguiente:

formas VS2012 asp.net web app -> actualizar a VS2013

intenta publicar - conseguir mismo error que OP.

Cuando por fin lo he descubierto, el problema fue causado por una cosa:

cuando miré en los proveedores de pertenencia en web.config, un elemento que faltaba el atributo connectionStringName:

malo:

<membership defaultProvider="SomeMembershipProvider"> 
    <providers> 
    <clear /> 
    <add name="SomeMembershipProvider" type="System.Web.Security.SqlMembershipProvider" passwordFormat="Encrypted" applicationName="SomeAppName" /> 
    <add connectionStringName="SomeConnectionString" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/SomeAppName" requiresUniqueEmail="false" blaw blaw blaw /> 
    </providers> 
</membership> 

buena:

<membership defaultProvider="SomeMembershipProvider"> 
    <providers> 
    <clear /> 
    <add name="SomeMembershipProvider" connectionStringName="PerhapsSomeOtherConnectionString" type="System.Web.Security.SqlMembershipProvider" passwordFormat="Encrypted" applicationName="SomeAppName" /> 
    <add connectionStringName="SomeConnectionString" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/SomeAppName" requiresUniqueEmail="false" blaw blaw blaw /> 
    </providers> 
</membership> 

no estoy Do re por qué se eliminó uno de los atributos connectionStringName, o incluso si alguna vez estuvo allí, pero puede activar y desactivar este error con esta configuración.

0

Tuve el mismo problema cuando traté de publicar mi servicio web. El problema fue que el archivo PrecompiledApp.config que se crea al publicar su sitio web en un directorio fue de alguna manera agregado a mi proyecto. Con eso agregado, causó el error.

La resolución: borré el archivo del árbol de mi proyecto en Visual Studio y luego pude publicar el servicio web de nuevo con las configuraciones precompiladas activadas/activadas.

0

asegúrese de no publicar directamente en el directorio virtual. en caso afirmativo, detenga el sitio, publique y luego reinicie el sitio.

Cuestiones relacionadas