Destructive and Scripted Database Refresh

I’m often asked a question by customers on what we mean when saying we need a destructive refresh of the database or a scripted one for that matter. So here is a quick explanation.


A destructive refresh is basically make your environment be a copy of Another DB(Master, Prod, etc). In it I would take a backup of for example the Master DB and overwrite the DynamicsAX Trans DB.  Then I’d go in and change the pointers inside AX to point to your server instead of the Master server.

A scripted refresh keeps your pointers and some configurations, things like batch jobs and security, document handling and just copies most of the data from Master, going table by table.  Some tables are excluded in the scripted refresh, depending on what we are restoring.

Time taken: A destructive refresh will take about an hour to do, while a scripted refresh is 3-4 hours.


Resolving: Error System.InvalidOperationException: Unable to recycle AppPool ‘AOSService’ running Site ‘AOSService’.

Recently I came across an error while doing a complete build on D365


Error :

Severity Code Description Project File Line Suppression StateSeverity Code Description Project File Line Suppression StateError System.InvalidOperationException: Unable to recycle AppPool ‘AOSService’ running Site ‘AOSService’. Check your IIS/Azure Environment for correct deployment. —> System.Runtime.InteropServices.COMException: The object identifier does not represent a valid object. (Exception from HRESULT: 0x800710D8)   at Microsoft.Web.Administration.Interop.IAppHostMethodInstance.Execute()   at Microsoft.Web.Administration.ConfigurationElement.ExecuteMethod(String methodName)   at Microsoft.Web.Administration.ApplicationPool.Recycle()   at Microsoft.Dynamics.Framework.Tools.AosAppPoolRecycler.RecycleAppPool()   — End of inner exception stack trace —   at Microsoft.Dynamics.Framework.Tools.AosAppPoolRecycler.RecycleAppPool()   at Microsoft.Dynamics.Framework.Tools.BuildTasks.SyncEngineWrapper.Sync(CancellationToken cancellationToken) 0


To verify that an application pool has recycled correctly, follow these steps:

Open Internet Information Services (IIS) Manager as an administrator.

In Connections pane, expand your computer name.

Open Application Pools

Find the AOSService pool and if it is stopped, start it.

app pool


Resolving Visual studio tools 2013 installation error in AX 2012 R3 CU8

When trying to install visual studio tools the following error occurs “This installation package could not be opened. Verify that the package exists and that you can access it” This is mostly caused by VS tools folder missing inside the msi folder of your installation setup. If these folders are there then you might have a different issue. To resolve this for R3 builds follow the following blog by Microsoft support:

After this simply run your installer again and add the visual studio component, worked like a charm for me!


Time taken: 40mins

Transfer Demo data into AX 2012 R3

For transferring demo data into R3 versions of AX 2012 follow the below:


1 Get Demo data package and extract it into any feasible  location (Extraction will be large about 15-20GB)


Takes 20mins
2 Get Data transfer tool to transfer package extracted data in AX DB <<>>

3 Import MetaDataXMLGenerator.xpo into AX environment and run the job


Take 30mins

This will be found in the Data transfer tools folder you extracted above
4 Copy Metadata file generated as output of the above job to the [Lists] folder in the Data Transfer tool directory File is mostly generated at the following path





5 STOP AOS before moving to the next step  
6 Open command prompt as admin. Go to directory where Test import tool was extracted.

Run the following command


Takes hours (2-3 approx.)


DP.exe IMPORT “C:\Users\mohsin.khalid\Downloads\MicrosoftDynamicsAXR3CU8DemoData” MicrosoftDynamicsAx



FYI; In above command “MicrosoftDynamicsAx” is your ax db name




  Total time of activity 4 hours approx

Debugging without a startup project or startup Object in D365

To debug without setting up a startup project and startup object in D365 fotr operations. Follow these steps:

  1. Open your object in visual studio
  2. Place breakpoints
  3. Goto Debug>attach to process and check show processes from all users
  4. Select w3wp.exe and click attach.


You can execute your process now from the client and execution will be stopped at your breakpoints.


Breakpoint symbols not loading AX7/D365

Recently faced a problem where my breakpoints weren’t loading for objects in the AOT that were not in my solution and therefore I could not debug.

Solution: In order to load symbols for objects that have not been included in your solution you have to uncheck the following check box.

Dynamincs365>Options>Dynamics 365>Debugging
Load symbols only for items in the solution


To know more about how to debug in D365 visit: Debug X++

How to Recall/Cancel a workflow through code in AX 2012

To recall a workflow through code you can use the cancelworkflow method in workflow class. It takes the correlationId and a comment as parameters and gets the job done for you. Example

workflow::cancelworkflow(CorrelationId, “Cancelling this workflow”)

Now you are probably thinking How do I find my workflows CorrelationId. You can do that by querying WorkflowTrackingStatusTable sorting it with time and instance number and joining it with SysWorkflowtable against the correlationId field and in the contextId you pass the RecId of your record for example PO RecId.