New Sitecore Publishing Targets in Containers

We have a Sitecore system running in containers, and we wanted to add a new publishing target. This is another copy of the WEB database; ours is called “preview”, and it is so that editors can check published content before it goes live.

I followed Sitecore’s documentation about how to do this – and do take note of steps 4 and 5. They’re new, and I missed them to begin with:

  • In the App_Data\items\ folder, make a copy of the Web folder.
  • Rename the copy of the folder and the .dat file inside it. Use the database name (for example, web_preview) instead of web for the folder name and the file name (so the filename is similar to items.web_preview.dat).

It turns out that’s important – without it you’ll get an exception on startup.

However, after doing that, we still had problems with our preview database; the CM server kept throwing an exception.

Continue reading “New Sitecore Publishing Targets in Containers”
New Sitecore Publishing Targets in Containers

System.Buffers references in Sitecore Nuget Packages

So, we keep seeing issues on different projects with the error:

Could not load file or assembly ‘System.Buffers, Version=4.0.x.x

The error can sometimes seem intermittent, or just plain baffling. If you then examine the /BIN directory, and look at the properties (right click on the dll, and look at the file properties) of System.Buffers, you’ll find that it’s a wrong version; it’s not what is referenced in web.config (remembering that you may have an Assembly binding redirect in place) at all.

I’m tired of digging out details for myself/my colleagues, so here’s what’s happening…

Continue reading “System.Buffers references in Sitecore Nuget Packages”
System.Buffers references in Sitecore Nuget Packages

Don’t be Lax about your SameSite cookies

We have a customer who is using Sitecore and the SagePay Pi service to take credit card payments. They were using a multi-page Sitecore Forms form, and weirdly their confirmation emails couldn’t use field values from the first pages of the form. Eventually, we found that the problem was due to the the user’s session being lost, but only if the user was using 3D-secure, and a recent browser. Here’s why…

Continue reading “Don’t be Lax about your SameSite cookies”

Don’t be Lax about your SameSite cookies

Random discovery: Why the 13th Hex character of Guids is ‘4’

I noticed something strange in Sitecore; for most of my nodes (not the Sitecore node!), the 13th Hex character of the identifying GUID is ‘4’.

I had a list of about 50 of these, and my eye was drawn to the pattern. Now, I thought Guids were entirely random, except that the chance of 50 page template IDs all having a 4 at that character was infinitesimal.

Weird. Except it turns out that they’re not random. I had no idea that there are different versions of guids, or than that character defined the version of the GUID.

This requires a test, so I wrote a program to print Guid.NewGuid() a lot:

All of them are 4s.

So:

  • GUIDs aren’t entirely random.
  • They might not be very random at all, looking at some of the other GUID versions.
  • Which is why they shouldn’t be used as a source of entropy for encryption.
  • I still have things to learn.
Random discovery: Why the 13th Hex character of Guids is ‘4’

Keeping the size of of Sitecore Azure Backups under control

I’ve written before about Azure Backup fails due to Content Testing Screenshots not clearing and the resulting problems with backup size.

That’s not the whole problem though.

Sitecore made some effort to configure some directories to be outside the home folder of the app services, and therefore not subject to backup – but there’s still a lot that shouldn’t be in the backup. Continue reading “Keeping the size of of Sitecore Azure Backups under control”

Keeping the size of of Sitecore Azure Backups under control

Application Initialization for Azure Service Apps (and Sitecore)

We have been having a problem with Sitecore in Azure PAAS – it appears that when auto-scaling scales out, App Services are being put into rotation before they have started up. This is causing all sorts of weirdness.

Sitecore support recommended making sure that we had Application Initialization configured. That seems a good idea. I’m not sure why the guys who set up this instance didn’t; perhaps they were unaware of it (and to be fair, it’s something I’ve not looked at before).

Continue reading “Application Initialization for Azure Service Apps (and Sitecore)”

Application Initialization for Azure Service Apps (and Sitecore)

My problems with Sitecore FXM

Sitecore’s Federated Experience Manager (FXM) allows non-Sitecore sites to record analytics data into Sitecore. It’s both quite neat, and has a number of problems. I’m going to assume you’ve done a little reading about FXM already, but here’s how it works (in Sitecore 9.0.x).

FXM works by having you adding a JavaScript reference to your pages:

This JavaScript, when run, instantiates a JavaScript Object (a Beacon) which makes a request of Sitecore:

And the response to that sets up a Sitecore Session ID, Contact ID, and returns element matches, which are stored in Cookies:

The element matches use HTML Element IDs to identify content to a) attach click handlers too, or b) elements to insert content around or in place of.

This is where we hit the first of my problems with FXM… Continue reading “My problems with Sitecore FXM”

My problems with Sitecore FXM

Azure Backup fails due to Content Testing Screenshots not clearing

We had a problem with Sitecore 9.0.2 in a PAAS environment. Our Azure App Service backups started failing. This was due to the backup size:Failed Backups

Above 10GB you have to use an Azure Storage Account to store your backup, apparently. However, we wondered why our backups had grown so large – they had been a few GB – and why they seemed to be growing. Continue reading “Azure Backup fails due to Content Testing Screenshots not clearing”

Azure Backup fails due to Content Testing Screenshots not clearing

XConnect certificate expiry

So, the SIF install scripts for Sitecore create certificates for securing the XConnect communication. There are 4 certificates involved – 2 “DO_NOT_TRUST_XXX” trusted root certs for signing 2 other certs, and those 2 are a) for the IIS XConnect site binding (as normal with HTTPS), and b) one for the XConnect client.

Unfortunately, these only last for a year… and the process of renewing them isn’t well documented. Continue reading “XConnect certificate expiry”

XConnect certificate expiry