При публикации на сайте asp.net выдается «Ссылка на объект не установлена ​​на экземпляр объекта». ошибка - PullRequest
9 голосов
/ 18 февраля 2010

Я сыт по горло этой ошибкой. Я выполнил поиск по всей сети и перепробовал все возможные предложения об этой ошибке, которые я смог найти.

  1. удалить app_code, собрать, добавить файлы обратно, опубликовать. (не работает)
  2. удалить временные файлы asp.net (не работает)

В конце я даже попробовал командную строку и получил следующую трассировку стека.

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)

Я использовал следующую командную строку:

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

Ответы [ 13 ]

0 голосов
/ 06 октября 2015

Опять же, это старый пост, но у меня было следующее:

VS2012 приложение веб-форм asp.net -> обновлено до VS2013

Попробуйте опубликовать - получите ту же ошибку, что и OP.

Когда я наконец понял это, проблема была вызвана одной причиной:

, когда я посмотрел поставщиков членства в web.config, в одном элементе отсутствовал атрибут connectionStringName:

плохо:

<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>

хорошо:

<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>

Я не уверен, почему один из атрибутов connectionStringName был удален, или даже если он когда-либо был там, ноВы можете включить и выключить эту ошибку с помощью этой настройки.

0 голосов
/ 24 июня 2015

В моем случае очистка куки решила проблему.

StackTrace упомянул некоторые аспекты авторизации и файлов cookie.Я открыл веб-приложение в режиме InCognito (в котором не сохраняются файлы cookie) и обнаружил, что приложение работает.

Надеюсь, оно кому-нибудь поможет.

0 голосов
/ 05 апреля 2014

обновить Visual Studio до VS 2013. Это решило проблему для меня. :)

...