Our app’s service is not able to start with error Cryptlex.LexActivatorException: machine fingerprint has changed since last activation and service crashed after that so a couple of questions -
- How to avoid this? - Does wrapping
LexActivator.IsLicenseGenuine() in try/catch would help it?
- Do we need to perform reactivation in this case?
- What has changed on the system so it is throwing this error? I mean what possible hardware are included for fingerprint?
You should wrap LexActivator.IsLicenseGenuine() in try/catch block. And prevent the user from using the app if it throws the exception. Now, based on the code in the exception your customer will be required to take any action:
if exception.code == LexStatusCodes. LA_E_MACHINE_FINGERPRINT
then you need to delete the activation server side and let your customer activate the license again.
What has changed on the system so it is throwing this error? I mean what possible hardware are included for fingerprint?
Please share the license key through email at firstname.lastname@example.org, we may be able to check if this happened within 7 days.
Does this mean that if this exception is thrown, we can’t deactivate the license from within the application? My plan for handling this situation was to deactivate the license (call LexActivator.DeactivateLicense) and allow the user to re-activate the license from within the application. This still prevents the user from activating the license on multiple machines, but doesn’t require interaction with the portal. Based on the answer you gave to this issue, it seems that this might not be a possibility?
When the machine fingerprint changes, it is treated as a different machine, hence it cannot deactivate the license. Logging into the portal is mandatory.
OK. Maybe this is better, since the customer can explain to us how or why their fingerprint might have changed.