Install - .NET Framework Windows Dynamic Agent started from the Command Line


.NET Framework Compatibility

vFunction supports C# .NET Framework version 4.x applications.


Installation Workflow - Use Environment Variables to set Installation Parameters

  1. Ensure Prerequisites are met
  2. Download the vFunction Windows Controller Installation ZIP
  3. RDP to the Windows Server as the user who runs the Application
  4. Move the Installation ZIP to the location on the Windows Server where vFunction should run
  5. Extract the vFunction Installation Package
  6. Open PowerShell
  7. Add Environment Variables for the vFunction Dynamic Agent and install the Agent
### Replace the $CHANGE_ME values with the Required Configuration Settings. For detailed Settings explanations, see:
### https://kb.vfunction.com/installations/configurable-settings/mono-dynamic-agent/dotnet/windows/#required
### Replace $BASE_DIR with the Windows location where the vFunction Installation ZIP was extracted
powershell -NoProfile -ExecutionPolicy unrestricted -Command "
Get-ChildItem -Path '$BASE_DIR' -Recurse | Unblock-File;
New-Item -Path Env:\VF_CONTROLLER_DEFAULT_DOTNET_CONTROLLER_NAME -Value '$CHANGE_ME';
New-Item -Path Env:\VF_CONTROLLER_DEFAULT_DOTNET_CONTROLLER_HOST -Value '$CHANGE_ME';
New-Item -Path Env:\VF_CONTROLLER_DEFAULT_DOTNET_CONTROLLER_APP_ID -Value '$CHANGE_ME';
New-Item -Path Env:\VF_CONTROLLER_DEFAULT_DOTNET_CONTROLLER_ORG_ID -Value '$CHANGE_ME';
New-Item -Path Env:\VF_CONTROLLER_DEFAULT_DOTNET_CONTROLLER_CLIENT_ID -Value '$CHANGE_ME';
New-Item -Path Env:\VF_CONTROLLER_DEFAULT_DOTNET_CONTROLLER_CLIENT_SECRET -Value '$CHANGE_ME';
New-Item -Path Env:\VF_CONTROLLER_DEFAULT_DOTNET_CONTROLLER_INSTANCE_ID -Value '$CHANGE_ME';
New-Item -Path Env:\VF_CONTROLLER_DEFAULT_DOTNET_CONTROLLER_TAG -Value '$CHANGE_ME';
New-Item -Path Env:\VF_CONTROLLER_DEFAULT_DOTNET_AGENT_VERSION -Value 'framework';
New-Item -Path Env:\VF_CONTROLLER_DEFAULT_DOTNET_AGENT_ENVIRONMENT -Value 'command';
$BASE_DIR\controller-installation\install.ps1 -instance default-dotnet"
  1. Create a script that runs your Command Line Application and hooks the vFunction Agent into the Application
### Replace $BASE_DIR with the Windows location where the vFunction Installation ZIP was extracted
### Replace $RUN_APP with the workflow that launches your .NET Application
$env:VF_AGENT_CONF_LOCATION='$BASE_DIR\config\agent\instances\default-dotnet\conf.json'
$env:COR_PROFILER_PATH_64 = '$BASE_DIR\agent\vfagent.net.dll'
$env:COR_PROFILER_PATH_32 = '$BASE_DIR\agent\vfagent.net.x86.dll'
$env:COR_ENABLE_PROFILING = '1'
$env:COR_PROFILER = '{cd7d4b53-96c8-4552-9c11-6e41df8eab8a}'
$env:COMPlus_TailCallOpt = 0
& '$RUN_APP'
  1. Run the script that was created in Step #8
  2. Confirm that the Application comes up and functions as expected. If any issues arise:
  1. Start Learning in the vFunction UI
  2. Validate the vFunction data collection

Installation Workflow - Use a YAML to set Installation Parameters

  1. Ensure Prerequisites are met
  2. Download the vFunction Windows Controller Installation ZIP
  3. RDP to the Windows Server as the user who runs the Application
  4. Move the Installation ZIP to the location on the Windows Server where vFunction should run
  5. Extract the vFunction Installation Package
  6. In a text editor, open the $BASE_DIR\vfunction\config\installation\instances\default-dotnet\installation.yaml
  7. Modify the required and optional configurable settings
### Replace the $CHANGE_ME values with the Required Configuration Settings
### Follow the Guidance in the Comments
controller:
  name: $CHANGE_ME #VF Server UI identifier for the Agent, e.g. QA-Win1-BillPay
  host: $CHANGE_ME #Address of the VF Server, e.g. https://vfunction.organization.com
  org_id: $CHANGE_ME #UUID retrieved from VF Server UI's Install Instructions dialog box
  app_id: $CHANGE_ME #UUID retrieved from VF Server UI's Install Instructions dialog box
  client_id: $CHANGE_ME #UUID retrieved from VF Server UI's Install Instructions dialog box
  client_secret: $CHANGE_ME #UUID retrieved from VF Server UI's Install Instructions dialog box
  type: dotnet
  instance_id: $CHANGE_ME #Field added manually. It's useful if the App is restarted regularly to reuse Agent IDs in the VF Server UI
  instrconf_additions:
    inclusions:
    exclusions:
  tags:
    - $CHANGE_ME #Strings used for logical groupings for App's Learning, e.g. "prod" or "BillPay"
	- $CHANGE_ME #UUID retrieved from VF Server UI's Install Instructions dialog box

server_application:

agent:
  version: framework #This field needs to be changed from the default "dotnet"
  environment: command #This field needs to be changed from the default "iis"
  1. Open Powershell
  2. Install the Agent
### Replace $BASE_DIR with the Windows location where the vFunction Installation ZIP was extracted
powershell -NoProfile -ExecutionPolicy unrestricted -Command "
Get-ChildItem -Path '$BASE_DIR' -Recurse | Unblock-File;
$BASE_DIR\controller-installation\install.ps1 -instance default-dotnet"
  1. Create a script that runs your Command Line Application and hooks the vFunction Agent into the Application
### Replace $BASE_DIR with the Windows location where the vFunction Installation ZIP was extracted
### Replace $RUN_APP with the workflow that launches your .NET Application
$env:VF_AGENT_CONF_LOCATION='$BASE_DIR\config\agent\instances\default-dotnet\conf.json'
$env:COR_PROFILER_PATH_64 = '$BASE_DIR\agent\vfagent.net.dll'
$env:COR_PROFILER_PATH_32 = '$BASE_DIR\agent\vfagent.net.x86.dll'
$env:COR_ENABLE_PROFILING = '1'
$env:COR_PROFILER = '{cd7d4b53-96c8-4552-9c11-6e41df8eab8a}'
$env:COMPlus_TailCallOpt = 0
& '$RUN_APP'
  1. Run the script that was created in Step #10
  2. Confirm that the Application comes up and functions as expected. If any issues arise:
  1. Start Learning in the vFunction UI
  2. Validate the vFunction data collection