Vulnerability in EPiServer.Forms
Currently working on a web project with Optimizely version 11. Its a load balanced server that serves two servers.
I just got a support ticket regarding content dissapears after the IIS gets recycled.From what I can see, this only happens on a specific page. This mysterious page (lets call it CoolPage) contains a Description property, a Header property and a content area which allow blocks of a specific type.
What I have noticed is that when I change the header or description property in editor mode, publishes the CoolPage and recycle the IIS everything looks perfect.However. When I jump into the block that´s being rendered by the content area and modifies the image and does the same steps as above, its all gone?! Sometimes the content area even lost its connection to the block that I just saved.
This block inside the content area contains properties like: Header, Image and a boolean property which has a JsonIgnore attribute over it(?) and an ingress property.
So to summarize..
It seems like something is going crazy when trying to modify the block that's inside of the content area.
I have tried the following (and nothing works): NOTE under this time I have turned of one of the servers for easier investigation.
I'm really lost here guys, any ideas?
You haven't mentioned your hosting platform - is it cloud or onprem? And have you configured the event provider to add load-balancing support?
Assuming it's hosted on Azure App Services, ensure that the EPiServer.Azure Nuget package is installed which includes support for distributing CMS events in a load-balanced environment. You will also need to update some configuration to map the Azure event provider, refer to this documentation for steps.
If it's on onprem Windows servers, you'll have to configure the built-in event provider
You mentioned the issue persists even on a single server, something else may be going on. Are you able to replicate this issue in your local evironment?
In a load-balanced environment, you have multiple servers. In order to keep the server in-sync, when you update the content in the admin, you need to tell the other servers you have updated the content and also invalidate cache.
When Ron mentioned load balancing environment he wasn't referring to the load balancer, more the configuration you need setup to support a load balanced environment.
In a load balanced environment you generally have 1 authoring server and this is also restricted to the outside world.
Then you can have as many front-end facing servers as you need. These servers need to listen to your authoring server for updates.
I would check the configuration is all setup correctly and everything is talking to each other.
This should point you in the right direction https://docs.developers.optimizely.com/content-management-system/docs/wcf-event-management?_gl=1*1h2szg7*_ga*MTEwNzM2NzU3My4xNjg3MTYxNjgy*_ga_C7SLJ6HMJ5*MTY4NzMzNTE3OS4xMi4xLjE2ODczMzU5NzIuMjkuMC4w
Problem is solved. we had to add MultipleActiveResultSets=True which somehow got lost in our variables..
Glad you got sorted Alex, strange though as I would have thought if this was disabled it would have flagged up other issues sooner.