2013-08-19 232 views
-1

這是我第一次在Amazon S3服務器中部署MVC Web應用程序。 和網站已加載瀏覽器,但當我點擊註冊按鈕時,它是拋出錯誤。 我可以看到唯一的區別是 我的應用程序被命名爲reporting.e-tale.co.uk並且Domain設置爲dashboard.e-tale.co.uk,因此我在dashboard.e生成了一個文件夾。 tale.co.uk並複製我的文件。它在當地工作正常,不知道它爲什麼會拋出錯誤。我部署的MVC應用程序在部署時不工作

請糾正我如果我做錯了任何事情。 我不確定要提供什麼細節。如果難以提出解決方案,我會向您提供更多詳細信息。 謝謝

'/'應用程序中的服務器錯誤。

未將對象引用設置爲對象的實例。

描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。

異常詳細信息:System.NullReferenceException:未將對象引用設置爲對象的實例。

源錯誤:

在當前web請求的執行過程中生成未處理的異常。關於異常的來源和位置的信息可以使用下面的異常堆棧跟蹤來標識。

堆棧跟蹤:

[NullReferenceException異常:對象引用不設置爲一個對象的一個​​實例] reporting.e_tale.co.uk.Controllers.AccountController.Register()255 lambda_method(封閉,ControllerBase ,Object [])+78 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary 2 parameters) +263 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary 2 parameters)+38 System.Web.Mvc。 <> C_ DisplayClass15.b _12()128 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter濾波器,ActionExecutingContext preContext,函數功能1 continuation) +826106 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func 1續)826106 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter濾波器,ActionExecutingContext preContext,Func 1 continuation) +826106 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList 1 filters,ActionDescriptor actionDescriptor,IDictionary`2 parameters)+314 System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,String actionName)+825328 System.Web.Mvc.Controller.ExecuteCore() +159 System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)+335 System.Web.Mvc。 <> c_ DisplayClassb.b _5()+62 System.Web.Mvc.Async。 <> c_ DisplayClass1.b _0()+20 System.Web.Mvc。 <> C_ DisplayClasse.b _d()54 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()469 System.Web.HttpApplication.ExecuteStep(IExecutionStep步驟,布爾& completedSynchronously)+ 375

版本信息:Microsoft。NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.1008

帳戶控制(註冊)

 /// <summary> 
    /// GET: /Account/Register 
    /// Action account Register. 
    /// </summary> 
    /// <returns></returns> 
    [AcceptVerbs(HttpVerbs.Get)] 
    public ActionResult Register() 
    { 
     var myViewData = new RegisterForm 
     { 
      Person = new Person 
      { 
       CreatedAt = DateTime.Now, 
       AppellationId = 
        _appellationRepository.GetAppellationByDescription(
         "Mr").Id, 
       CountryId = 
        _countryRepository.GetCountryByName(
         "United Kingdom").Id, 
       CorporationId = _corporationRepository.GetCorporationByName(
       "Samsung").Id 
       //ManufacturerId = _manufacturerRepository.GetManufacturerByName(
       //"Samsung").Id 
      }, 
      User = 
       new User 
       { 
        CreatedAt = DateTime.Now, 
        Guid = Guid.NewGuid().ToString("N") 
       } 
     }; 

     myViewData.Appellations = new SelectList(_appellationRepository.GetAllAppellations().ToList(), "Id", 
               "Description", myViewData.Person.AppellationId); 
     myViewData.Countries = new SelectList(_countryRepository.GetAllCountries().ToList(), "Id", "Name", 
               myViewData.Person.CountryId); 
     myViewData.Corporations = new SelectList(_corporationRepository.GetAllcorporations().ToList(), "Id", 
               "Description", myViewData.Person.CorporationId); 
     //myViewData.Manufacturers = new SelectList(_manufacturerRepository.GetAllManufacturers().ToList(),"Id", 
     // "Description",myViewData.Person.ManufacturerId); 
     myViewData.PasswordLength = MembershipService.MinPasswordLength; 

     return View(myViewData); 
    } 
+0

請告訴我們一個錯誤或其他東西。我們怎麼可能知道問題出在哪裏「但是有錯誤」?我們可以拋出隨機的建議,但除非您告訴我們錯誤是什麼,否則這將無濟於事。 –

+0

@SimonWhitehead我已經在配置中設置了自定義錯誤,並且出現錯誤。請看我編輯過的文章 – 62071072SP

+0

你的代碼有一個'null'對象。告訴我們你的'AccountController'的'Register()'操作方法,我們可以幫助你診斷它。這可能與數據有關..您的本地數據如預期的那樣,但您的實時數據庫缺少一些您只希望在那裏的數據。 –

回答

3

你的代碼不是很守..因此您的問題。

在你的AccountControllerRegister()方法中有一個null對象..那是什麼?

任何這些:

_appellationRepository.GetAppellationByDescription("Mr") 
_countryRepository.GetCountryByName("United Kingdom") 
_corporationRepository.GetCorporationByName("Samsung") 

檢查您的數據,並檢查您的倉庫實際上是返回數據。您不能在null對象上檢查屬性(在上述每個調用之後通過.Id執行此操作)。正如我在評論中所說..這可能是因爲您的實時數據庫不包含您的本地數據庫包含的所有數據。確保它們與1對1匹配,並且當你在那裏時...放置一些防禦機制!例如:

var country = _countryRepository.GetCountryByName("United Kingdom"); 

if (country == null) 
    // Log the error or give a more descriptive error 
+1

是的,你是對的我創建了新表公司沒有任何數據在現場和插入數據後我得到不同的錯誤:請參閱我編輯的帖子 – 62071072SP