06 March 2023

D365FO: missing menu item for running custom X++ scripts

Some time ago Microsoft released a new feature for running custom X++ scripts without having to go through Microsoft Dynamics Lifecycle Services (LCS) or suspend your system. According to the documentation, feature should be accessible via "System administration > Periodic tasks > Database > Custom scripts". In some cases this menu item is missing:


The solution is to run the following SQL query and restart IIS:

INSERT INTO SYSFLIGHTING (FLIGHTNAME, ENABLED) VALUES('AppConsistencyCustomScriptFlight', 1)

20 December 2022

D365FO: 'Serialization version mismatch detect' error

This error could happen during running DbSync, deploying a package (LCS or manually) or just starting up IIS. Error message looks like the following: 

Serialization version mismatch detect, make sure the runtime dlls are in sync with the deployed metadata. Version of file '204'. Version of dll '203'.

Versions could vary, but the file version is always higher then dll version.

The root cause of the issue is that your D365FO version is lower then the minimum version required by installed ISV solution as a binary model. 

There are two possible solutions:

  1. Delete binary model
  2. Update D365FO to the minimum version required by ISV solution



02 November 2022

D365FO: LCS error while creating first environment in a new project

The following error could appear when you try to create a new cloud hosted environment in a new project:

Lifecycle Services cannot perform the current {0} operation. Received null or empty value for parameter {1}. If the issue persists, please contact support with this Id: <guid>

The only way to fix this is to contact Microsoft support. They will update so-called S2S certificate, after that it will be possible to create new environments without an error.

23 September 2022

D365FO: error while trying to apply deployable package

The following error could appear when you try to apply deployable package manually on your Dev environment:

Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

That happens if you forgot to unblock the package Zip file before extracting.

The solution is simple - before extracting locate the file, open file properties and check Unblock checkbox:

16 August 2022

D365FO: workflow development and debugging

There are many guides in the internet how to create a new workflow in D365FO. The process is quite long and complicated.

Here are some of the tips to make it easier for you:

  1. If you stuck and not sure how to implement a specific part of a workflow - check Microsoft's workflows from Application Foundation model. Many good examples there.

  2. When you debugging the workflow, remember to attach your Visual Studio to the "Batch.exe" process, not to the default "iisexpress.exe", else no breakpoint will be hit

  3. The "Rejected" workflow action for some reason is handled by "denied" event handler (WorkflowElementDeniedEventHandler). All other actions (Started, Approved, Canceled, etc.) have event handlers with matching names.

07 July 2022

D365FO: WinRM certificate error while rotating SSL ceritificate

When cloud-hosted D365FO environment is deployed, SSL certificate is generated for accessing local IIS via HTTPS. This certificate will expire after some time and will trigger HTTPS errors when accessing local D365FO instance. SSL certificate could be regenerated via "Maintain" -> "Rotate secrets" menu. 

In some cases "Rotate secrets" task could fail with the following error: "Attempted to remotely execute a powershell script but the WinRM SSL certificate is expired. Please make sure the virtual machine [vm_name] has a valid WinRM SSL certificate before retrying."

Here is easiest way to refresh WinRM certificate:

  1. Login to the remote VM via RDP
  2. Open PowerShell prompt as Administrator
  3. Run the following command to install d365fo.tools, select "A" to install all modules when prompted:
    Install-Module -Name d365fo.tools

  4. Run the following command to refresh WinRM certificate:
    Invoke-D365WinRmCertificateRotation
Restart the VM and check if local D365FO instance could be accessed again without certificate error. If the issue still there - execute certificate rotation from LCS one more time, this time it will succeed.

11 April 2022

D365FO: Visual Studio 2019 crashes

If you tried to develop or debug D365FO customizations using Visual Studio 2019, you probably noticed how often it crashes or shows various errors.

Peter Villadsen, Principal Program Manager from Microsoft, highlighted possible root cause of the problems in his latest post and also provided few workarounds. According to Peter, Visual Studio 2019 is still 32-bit process and suffers from memory limitations while loading lots of PDB files during debugging. One of the options is to enable "Load symbols only for items in the solution" options in "Dynamics 365" debugging settings and manually load required PDB files when needed.

These workarounds are working for small ISV solutions, when you have little number of files per model. In this case you could indeed enable "Load symbols only for items in the solution" options in "Dynamics 365" debugging settings. For the large solutions, however, it does not really work. You will still have objects, which are not in your solution, thus manual PDB loading will be required.

From my experience, the best way to debug D365FO customizations using Visual Studio 2019 is to keep "Load symbols only for items in the solution" option enabled as long as possible and keep an eye on Visual Studio 2019 memory consumption in Windows Task Manager. Disable "Load symbols only for items in the solution" option only when needed to debug Microsoft's code or when you can't add all required objects to your solution (for example, if you have multiple models or too many files). Once Visual Studio 2019 will consume more than 8GB RAM, it will surely crash. Just restart Visual Studio before it crashes and continue your work.