Legacy .NET agent - Setting up IIS
Prerequisites
Microsoft run-time components
Install Microsoft Visual C++ Redistributable for Visual Studio 2017 from: https://www.visualstudio.com/downloads/
The 32bit version is: https://go.microsoft.com/fwlink/?LinkId=746571
The 64bit version is: https://go.microsoft.com/fwlink/?LinkId=746572
You can use the PowerShell commands below to install these prerequisites via a script
iwr -OutFile vc_redist.x86.exe -UseBasicParsing -Uri https://go.microsoft.com/fwlink/?LinkId=746571
Start-Process -FilePath vc_redist.x86.exe -ArgumentList "/Q" -Wait
iwr -OutFile vc_redist.x64.exe -UseBasicParsing -Uri https://go.microsoft.com/fwlink/?LinkId=746572
Start-Process -FilePath vc_redist.x64.exe -ArgumentList "/Q" -Wait
Agent Token and Proxy settings
If needed, configure the coverage collector service settings by editing the SL.DotNet.CoverageCollectorService.exe.config
file:
If you have not placed the sltoken.txt in the agents' folder, then, in Sealights.Token put the token you've received from SeaLights
If a proxy is used, add a key named 'Sealights.Proxy' and set the value to a URL like "http://127.0.0.1:8888"
Coverage Collector IIS Installation
As an Administrator, install and start the coverage collector service:
SL.DotNet.CoverageCollectorService.exe install start
Register our agent as a profiler in the IIS services
SL.DotNet.exe registeriis {--token <arg> | --tokenFile <arg>}
Perform IIS reset:
At the successful completion of this step, you will see a new entry appearing in the Cockpit > Agent Monitor for an entity called CollectorService
for dotnet
technology
Capturing coverage
During the time you want to run your tests and capture coverage, you can now start and stop the coverage collection of the SeaLights agent test listener
Starting coverage collection session
Before you start running your tests, you need to update the SeaLights Test Listener to start collecting coverage. You do so with the startCollectorServiceSession
command.
Since there could be multiple applications running on a single IIS server, it is important to make note of the Application Pool name that corresponds to the hosted application from which coverage will be collected. If you are unsure what your application pool name is for the processTag
parameter, refer to the expandable paragraph below (inside this article section) to identify it manually from your IIS Manager console.
For .NET Core processes, set --processName dotnet, as this is the name of the process on which .NET Core applications run.
At the successful completion of this step, you will see additional new entries appearing in the Cockpit > Agent Monitor: the CollectorServiceSession
and a entity Profiler
.
The Profiler
will be highlighting the Application Pool it is connected to as a Tag
in the dedicated column.
Running your tests
Now you can run any one of your tests that run against this IIS instance and capture coverage (Don’t forget to send a start and end command with the test stage name):
Stopping coverage collection session
Note: This command can be run on a remote machine (like the CI running the tests) while providing the host to start the session on it, using the parameter: --machine <IIS host>
Un-installing the Coverage Collector Service
Sometimes when upgrading your agent version, you will need to uninstall the coverage collector service from your machine.
This can be done by running the following command: