Popular blog tags

login error (iaspenetcore)

Published

 

1.The error "BsonSerializationException: An error occurred while serializing the CustomerGuid property of class Nop.Core.Domain.Customers.Customer

 System.AggregateException: One or more errors occurred. (An error occurred while deserializing the CustomerGuid property of class Nop.Core.Domain.Customers.Customer: GuidSerializer cannot deserialize a Guid when GuidRepresentation is Unspecified.)
       ---> System.FormatException: An error occurred while deserializing the CustomerGuid property of class Nop.Core.Domain.Customers.Customer: GuidSerializer cannot deserialize a Guid when GuidRepresentation is Unspecified.
       ---> MongoDB.Bson.BsonSerializationException: GuidSerializer cannot deserialize a Guid when GuidRepresentation is Unspecified.

 

Nop.Data.MongoDBRepository<T>.UpdateAsync(T entity) in MongoDBRepository.cs
+
            await this._collection.FindOneAndReplaceAsync<T>(filter, entity);
Nop.Services.Customers.CustomerService.UpdateCustomerAsync(Customer customer) in CustomerService.cs
+
            await _customerRepository.UpdateAsync(customer);
Nop.Web.Controllers.CustomerController.Login(LoginModel model) in CustomerController.cs
+
                await this._customerService.UpdateCustomerAsync(customer);

run error format in mongodb

CustomerGuid: Binary.createFromBase64('VRUBwM6sck+wbKF8Vq93Vg==', 3)

run ok format in mongodb

CustomerGuid: UUID('d58456a6-15ee-4a4a-a95c-be210dc184f7')

reason

GuidSerializer changes

https://mongodb.github.io/mongo-csharp-driver/2.11/reference/bson/guidserialization/serializerchanges/guidserializerchanges/

 GuidSerializer cannot serialize a Guid when GuidRepresentation is Unspecified" indicates that the MongoDB C# driver is encountering a GUID (Globally Unique Identifier) that does not have a specified representation during serialization.

This typically happens when the driver needs to know how to store the GUID in MongoDB, but the default or configured GuidRepresentation is Unspecified.

Resolution Steps:

  BsonSerializer.RegisterSerializer(new GuidSerializer(GuidRepresentation.Standard));

  if (customer.CustomerGuid== Guid.Empty)
  {
      customer.CustomerGuid = Guid.NewGuid();
  }

  customer.CustomerGuid = Guid.NewGuid();

  await this._customerService.UpdateCustomerAsync(customer);

  _workContext.CurrentCustomer = customer;

F:\Nopcommerce\src\Presentation\Nop.Web\Controllers\CustomerController.cs