2013-08-19 180 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