2013-04-17 13 views
10

Ho un'applicazione web che non mi dà problemi sul mio computer, ma quando la distribuisco al server ottengo questo errore . E non mi dà alcuna riga di codice sorgente per controllare e non hanno alcuna idea del perché può accadereNon riesco a capire perché sto ricevendo questa eccezione di nullReference in ASP MVC durante il caricamento di una pagina

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object. 

Source Error: 


[No relevant source lines] 

Source File: c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\a9dc635c\ccb3814\App_Web_item.cshtml.f0356b3c.uyw8roer.0.cs Line: 0 

Stack Trace: 


[NullReferenceException: Object reference not set to an instance of an object.] 
    ASP._Page__AssemblyResource_MyProject_Web_Mvc__Version_1_0_0_0__Culture_neutral__PublicKeyToken_null_Views_LeagueGlobal_Item_cshtml.Execute() in c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\a9dc635c\ccb3814\App_Web_item.cshtml.f0356b3c.uyw8roer.0.cs:0 
    System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +279 
    System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +125 
    System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +195 
    System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +383 
    System.Web.Mvc.<>c__DisplayClass1a.<InvokeActionResultWithFilters>b__17() +32 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +977396 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +977396 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +265 
    System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult) +964636 
    System.Web.Mvc.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult) +28 
    System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +20 
    System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +67 
    System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +20 
    System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +53 
    System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult) +42 
    System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +20 
    System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +53 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +469 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +375 
+1

Potresti aggiungere il codice per App_Web_item.cshtml? –

+0

hai provato a eliminare i file temporanei a cui fa riferimento il messaggio di errore? – dav83

risposta

0

Vai linea 0 del file di origine a:

c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary Files ASP.NET \ root \ a9dc635c \ ccb3814 \ App_Web_item.cshtml.f0356b3c.uyw8roer.0.cs

Quindi, utilizzare questo per pin-point dove esattamente l'eccezione si verifica nel blocco di codice:

try 
{ 
    ... 
} 
catch (NullReferenceException ex) 
{ 
     ShowMessageBox("Error" + ex.Message); 
} 

Controllare che:

  1. Hai avviato le variabili che si sta manipolando.
  2. Le variabili che si stanno utilizzando non sono diventate nulle dal momento della distribuzione sul server.
  3. Non si utilizzano variabili al di fuori del proprio ambito.
2

Mi imbatto nello stesso problema. Sfortunatamente la traccia dello stack non è molto utile in questo caso. L'eccezione sta accadendo di sicuro nella vista, ciò che è stato nel mio caso:

@Model.SomeProperty.Trim() 

E Model.SomeProperty era nullo. Come non c'è modo di eseguire il debug; Vi consiglio binario approccio divisa:

  • salvare la vista da qualche altra parte
  • rimuovere uno per uno parti logiche dalla visualizzazione
  • dopo ogni rimozione salvare la vista e ripetere il test
  • se l'eccezione non è più riproducibile, la NullReferenceException è avvenuta nel blocco che hai rimosso; quindi aggiungilo di nuovo e rimuovi le parti logiche all'interno di questo blocco finché non isolerai la linea che causa un'eccezione

Suo zoppo lo so, ma non ho trovato altro modo - btw. questo è quello che ho visto per fare il lavoro del controller in vista.

+0

Divertente, stavo facendo questo tipo di 'rem e refresh' per la risoluzione di un ref null su una riga di codice che era abbastanza lontana dall'eventuale problema, quando ho ricevuto il messaggio "No source source lines". Posso confermare che questo approccio finisce per trovare il tuo nulla. –

Problemi correlati