2013-04-17 30 views
10

Tôi có một ứng dụng web không mang lại cho tôi bất kỳ sự cố nào trên máy tính của mình, nhưng khi triển khai nó đến máy chủ, tôi nhận được lỗi này . Nó không cho tôi bất kỳ dòng mã nguồn để kiểm tra và tôi không có bất kỳ ý tưởng tại sao nó có thể xảy raKhông thể hiểu tại sao tôi nhận ngoại lệ nullReference này trong ASP MVC khi tải một trang

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

Bạn có thể thêm mã cho App_Web_item.cshtml không? –

+0

bạn đã thử xóa các tệp tạm thời được tham chiếu trong thông báo lỗi chưa? – dav83

Trả lời

0

Đến dòng 0 của tập tin nguồn của bạn tại địa chỉ:

c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Tệp ASP.NET tạm thời \ root \ a9dc635c \ ccb3814 \ App_Web_item.cshtml.f0356b3c.uyw8roer.0.cs

Sau đó, sử dụng tính năng này để xác định chính xác vị trí chính xác ngoại lệ xảy ra trong khối mã của bạn:

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

Kiểm tra xem:

  1. Bạn đã khởi tạo biến mà bạn đang thao tác.
  2. Các biến mà bạn đang sử dụng chưa trở thành null kể từ khi triển khai biến cho máy chủ.
  3. Bạn không sử dụng các biến nằm ngoài phạm vi của mình.
2

Tôi gặp sự cố tương tự. Thật không may, theo dõi ngăn xếp không phải là rất hữu ích trong trường hợp này. Ngoại lệ xảy ra chắc chắn trong chế độ xem, trong trường hợp của tôi là gì:

@Model.SomeProperty.Trim() 

Và Model.SomeProperty là rỗng. Vì không có cách nào để gỡ lỗi nó; Tôi khuyên bạn nên chia cách tiếp cận nhị phân:

  • lưu quan điểm của mình ở một nơi khác
  • loại bỏ một-by-một phần logic khỏi tầm nhìn của bạn
  • sau mỗi lần bị đuổi lưu quan điểm của bạn và kiểm tra lại
  • nếu ngoại lệ là không lặp lại lâu hơn, NullReferenceException xảy ra trong khối bạn đã xóa; do đó, hãy thêm lại và xóa các phần hợp lý bên trong khối này cho đến khi bạn cô lập dòng gây ra ngoại lệ

Tôi biết, nhưng tôi không tìm thấy cách nào khác - btw. đây là những gì tôi đã làm cho công việc điều khiển trong xem.

+0

Hài hước, tôi đã thực hiện kiểu xử lý sự cố 'rem and refresh' này bằng một dòng mã khá xa vấn đề cuối cùng, khi tôi nhận được thông báo "Không có dòng nguồn liên quan". Tôi có thể xác nhận rằng cách tiếp cận này sẽ kết thúc việc tìm kiếm giá trị rỗng của bạn. –

Các vấn đề liên quan