Upgrading from 3.70 to 3.90

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
2 years ago
Hello everyone,

I have this project to upgrade this existing NopCommerce sites from 3.70  to the latest version.  Right now we wanted to make the 3.90 running before going to v4.00 and above. But I'm having issue make the 3.90 working, when I tried to access the admin site, I got this error



Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an object.]
   Nop.Services.Customers.CustomerRegistrationService.PasswordsMatch(CustomerPassword customerPassword, String enteredPassword) +138
   Nop.Services.Customers.CustomerRegistrationService.ValidateCustomer(String usernameOrEmail, String password) +444
   Nop.Web.Controllers.CustomerController.Login(LoginModel model, String returnUrl, Boolean captchaValid) +314
   lambda_method(Closure , ControllerBase , Object[] ) +191
   System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +14
   System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +157
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27
   System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +22
   System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +29
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32
   System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +50
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +228
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +228
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +228
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +228
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +228
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +228
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +228
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +228
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +228
   System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +228
   System.Web.Mvc.Async.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult) +10
   System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34
   System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +26
   System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100
   System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27
   System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +36
   System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +22
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26
   System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
   System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28
   System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9850009
   System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +50
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +163


Not sure what I'm missing, I copy the Themes, Plugin, Content and App_Data folders to the 3.90, and run the script already.

Appreciate any help. Thanks
2 years ago
ryanjayson wrote:
Not sure what I'm missing, I copy the Themes, Plugin, Content and AppData folders to the 3.90, and run the script already.

I don’t know what you are copying - you cannot use old v3.7 themes and plugins, etc in v3.9 without manually upgrading  them - so work out that part later

The upgrade scripts only upgrade the database
First, you need to start with a fresh version of 3.9
Then you upgrade the database using the script and use the upgraded database with the v3.9 system

After that is working you can looking to manually upgrading old v3.7 themes and plugins or use themes and plugin versions that are already compatible with v3.9
2 years ago
Yidna wrote:
Not sure what I'm missing, I copy the Themes, Plugin, Content and AppData folders to the 3.90, and run the script already.
I don’t know what you are copying - you cannot use old v3.7 themes and plugins, etc in v3.9 without manually upgrading  them - so work out that part later

The upgrade scripts only upgrade the database
First, you need to start with a fresh version of 3.9
Then you upgrade the database using the script and use the upgraded database with the v3.9 system

After that is working you can looking to manually upgrading old v3.7 themes and plugins or use themes and plugin versions that are already compatible with v3.9


Hi Yidna,

Thank you for your help. I did a clean install of 3.90, and I rolled back our DB so it's  from 3.70 again, and I run the upgrade scripts - 3.80 and 3.90, but still I encounter the same issue when I'm trying to login and even register


[NullReferenceException: Object reference not set to an instance of an object.]
   Nop.Services.Customers.CustomerRegistrationService.PasswordsMatch(CustomerPassword customerPassword, String enteredPassword) +138
   Nop.Services.Customers.CustomerRegistrationService.ValidateCustomer(String usernameOrEmail, String password) +444
   Nop.Web.Controllers.CustomerController.Login(LoginModel model, String returnUrl, Boolean captchaValid) +314
   lambda_method(Closure , ControllerBase , Object[] ) +191
   System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +14
   System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +157


I did not change the theme and plugin yet.

Appreciate your thoughts and help. Thanks
2 years ago
I don’t know - seems the upgrade of the database may not have worked for some reason.
Was the v3.7 database standard with no modification to structure and/or tables ?

The only other thing I can suggest is to run the v.39 install to create a test database and check everything is working in v3.9 first.
Then try changing the App_Data/Settings.txt file to point to your upgraded database .

If this does not work then you know there was some problem with the upgrade of the database
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.