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
- Ensure Prerequisites are met
- Download the vFunction Windows Controller Installation ZIP
- RDP to the Windows Server as the user who runs the Application
- Move the Installation ZIP to the location on the Windows Server where vFunction should run
- Extract the vFunction Installation Package
- Open PowerShell
- 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"
- 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'
- Run the script that was created in Step #8
- Confirm that the Application comes up and functions as expected. If any issues arise:
- Start Learning in the vFunction UI
- Validate the vFunction data collection
Installation Workflow - Use a YAML to set Installation Parameters
- Ensure Prerequisites are met
- Download the vFunction Windows Controller Installation ZIP
- RDP to the Windows Server as the user who runs the Application
- Move the Installation ZIP to the location on the Windows Server where vFunction should run
- Extract the vFunction Installation Package
- In a text editor, open the $BASE_DIR\vfunction\config\installation\instances\default-dotnet\installation.yaml
- 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"
- Open Powershell
- 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"
- 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'
- Run the script that was created in Step #10
- Confirm that the Application comes up and functions as expected. If any issues arise:
- Start Learning in the vFunction UI
- Validate the vFunction data collection