Hi Dynamicweb,
We have an integrated solution and can now and then see some exceptions in the Event viewer, and it seems like the priceprovider is not thread safe. Please see the exception here:
Exception information:
Exception type: InvalidOperationException
Exception message: Collection was modified; enumeration operation may not execute.
at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
at System.Collections.Generic.List`1.Enumerator.MoveNextRare()
at Dynamicweb.Ecommerce.Prices.DefaultPriceProvider.FindPriceInternal(Product product, Double quantity, Currency currency, String unitId, User user, Boolean isInformative, Double quantityAllVariants)
at Dynamicweb.Ecommerce.Prices.DefaultPriceProvider.FindPrice(Product product, Double quantity, String variantId, Currency currency, String unitId, User user, Double quantityAllVariants)
at Dynamicweb.Ecommerce.Prices.PriceManager.FindPriceInternal(PriceProvider provider, Product product, Double quantity, String variantId, Currency currency, String unitId, Boolean isInformative, Double quantityAllVariants)
at Dynamicweb.Ecommerce.Prices.PriceManager.FindPrice(Product product, Double quantity, String variantId, Currency currency, String unitId, Boolean isInformative, Double quantityAllVariants)
at Dynamicweb.Ecommerce.Orders.OrderLine.FindPrice(Boolean includeUnitId)
at Dynamicweb.Ecommerce.Orders.OrderLine.get_UnitPrice()
at Dynamicweb.Ecommerce.Orders.OrderLine.get_Price()
at Dynamicweb.Ecommerce.Orders.OrderLineCollection.get_Price()
at Dynamicweb.Ecommerce.Orders.Order.GetPriceBeforeFees(Boolean negativePriceControl)
at Dynamicweb.Ecommerce.Orders.Order.get_Price()
at Dynamicweb.Ecommerce.Orders.OrderRepository.Save(Order order, Int32 extranetUserId)
at Dynamicweb.Ecommerce.Orders.OrderService.Save(Order order, Boolean saveOldVersion)
at Dynamicweb.Ecommerce.Frontend.Cart.CartCatch.SaveCart(Order cart)
at Dynamicweb.Ecommerce.Common.Context.SetCart(Order cart)
at Dynamicweb.Ecommerce.Orders.OrderService.RemoveNoneActiveProducts(Order order)
at Dynamicweb.Ecommerce.Frontend.Cart.CartCatch.LoadCart()
at Dynamicweb.Ecommerce.Common.Context.GetCart()
at Dynamicweb.Ecommerce.LiveIntegration.NotificationSubscribers.ExtranetLogin.OnNotify(String notification, NotificationArgs args)
at Dynamicweb.Extensibility.Notifications.NotificationManager.Notify(String notification, NotificationArgs eventArgs)
at Dynamicweb.Frontend.LogOnHandler.LogOn(String username, String password, Boolean onlyActive, Boolean impersonateUser, Int32 impersonateUserId, Boolean loginIfPasswordEncrypted)
at Dynamicweb.Frontend.SecurityHandler.ExtranetStart()
at Dynamicweb.Frontend.LoginHandler.ExtranetStart(Int32 pageId)
at Dynamicweb.Frontend.PageView.Load()
at Dynamicweb.Frontend.DynamicwebHttpHandler.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
I hope you can change this?
Best regards, Anders