# Downloads

### iMIS 2017

#### Latest

[WebToolz for iMIS 2017 20.2.65.9723 / 2026 PerformanceFix (v4.51)](https://docs.zentso.com/attachments/230)

#### Previous

[WebToolz for iMIS 2017 20.2.66.1644 / 2026 Q3.1 (v4.50)](https://docs.zentso.com/attachments/227)

<details id="bkmrk-release-and-installa"><summary>Release and Installation Guide</summary>

##### WebToolz 4.50 - Release and Installation Guide

<div>Release date: 27 August 2026 </div><div>Audience: iMIS administrators, implementation partners, and hosting providers</div>##### Release summary

<div>WebToolz 4.50 targets iMIS 20.2.63 Q3 2026. The main assembly version is</div><div>`4.50.0.0` and it is compiled against ASI `20.2.66.1644` and</div><div>Telerik.Web.UI `2026.3.812.462`.</div><div>  
</div><div>**Changes from WebToolz 4.49:**</div><div>- Updated iMIS and Telerik dependencies for the Q3 2026 iMIS release.</div><div>- Updated the WYSIWYG form control to use the iMIS safe-content HTML editor.</div><div>- Aligned the supplied `System.Buffers` assembly with the version required by</div><div> the WebToolz DNS client dependency.</div><div>- Removed the legacy `RestApiCall` and `RestApiCallWithUsernamePassword`</div><div> web-service operations. Integrations using either operation must be replaced</div><div> with an explicitly implemented, allowlisted integration before upgrading.</div><div>- Removed the embedded IQA service credential. Every environment must now have</div><div> its own shared secret of at least 32 characters.</div><div>  
</div><div>**Important package requirement**</div><div>Install only a newly built WebToolz 4.50 release package supplied by Zentso.</div><div>Do not install or redistribute a 4.48 or 4.49 deployment ZIP: those packages</div><div>predate the 4.50 security changes.</div><div>  
</div><div>Before installation, confirm the supplied `Zengage.FlexibleFormz.dll` reports</div><div>file version `4.50.0.0`:</div>```powershell
(Get-Item '.\Zengage.FlexibleFormz.dll').VersionInfo.FileVersion
```

##### Before installation

<div>1. Confirm the target is iMIS 20.2.63 Q3 2026 and its installed</div><div> `Telerik.Web.UI.dll` is version `2026.3.812.462`.</div><div>2. Schedule an outage or maintenance window. Editing `Web.config` recycles the</div><div> iMIS application.</div><div>3. Back up the iMIS `Net` directory, the current WebToolz files, and the current</div><div> `Web.config`. Record the existing WebToolz version.</div><div>4. Generate a different service secret for each environment. Do not send it in</div><div> email, store it in the release package, commit it to source control, or reuse</div><div> the former embedded credential.</div><div>5. If WebToolz is installed on more than one web server, repeat the file and</div><div> configuration work on every node. See the web-farm note below before copying</div><div> an encrypted configuration file between servers.</div><div>  
</div><div>**Generate the shared secret**</div><div>Run this in Windows PowerShell on an administrator workstation or server. Store</div><div>the output in the organisation's approved password or secrets manager:</div><div>  
</div>```powershell
$secretBytes = New-Object byte[] 32
[Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($secretBytes)
[Convert]::ToBase64String($secretBytes)

```

<div>The resulting Base64 value is 44 characters and satisfies the minimum length.</div>##### Install the files

<div>The examples below assume the default iMIS path</div><div>`C:\Program Files (x86)\ASI\iMIS\Net`. Use the site's actual path if different.</div><div>  
</div><div>1. Copy the supplied `Zengage\Flexible Formz` folder to</div><div> `Net\iParts\Zengage\Flexible Formz`.</div><div>2. Copy `Zengage.FlexibleFormz.dll` and the other supplied runtime DLLs to</div><div> `Net\bin`.</div><div>3. If the ASI Scheduler uses WebToolz, copy `Zengage.FlexibleFormz.dll` to the</div><div> scheduler `bin` directory as well.</div><div><div><div>4. Include the following file from the WebToolz release source: `WebToolzDeployment\Zengage\Flexible Formz\WebServices\web.config`. Update the endpoint addresse(s) in this file to use the target iMIS server's local IP addresse(s), then deploy it to `Net\iParts\Zengage\Flexible Formz\WebServices\web.config`. Do not leave the IP address from the release or another environment in place, except 127.0.0.1.</div></div></div><div>5. Copy the optional SAML and PLUS/API files only when those features are</div><div> licensed and already configured for the site.</div><div>6. For a new installation, import `FormToolz Content Type.xml` in Staff site via</div><div> RiSE &gt; Maintenance &gt; Content Types. Import the AFD IQA example only when AFD</div><div> is licensed. Existing installations normally retain their existing content</div><div> type and configuration.</div><div>  
</div><div>Do not copy the Q4 2025 Telerik binding redirect into a Q3 2026 installation.</div><div>No WebToolz-specific Telerik redirect is required when the installed assembly is</div><div>version `2026.3.812.462`.</div>##### Configure the IQA service secret

<div>The environment variable is preferred because it keeps the value out of</div><div>`Web.config`. Configure one of the following options, not both. If both are</div><div>present, the environment variable takes precedence.</div><div>  
</div><div>**Option A - machine environment variable (preferred)**</div><div>Run an elevated Windows PowerShell session on each iMIS web server:</div>```powershell
powershell
[Environment]::SetEnvironmentVariable(
    'WEBTOOLZ_SERVICES_SHARED_SECRET',
    '<paste-the-generated-secret>',
    'Machine')
```

<div>Recycle the iMIS IIS application pool after setting or changing the variable so</div><div>the worker process receives the new value. Apply the same secret to every node</div><div>that belongs to the same iMIS site.</div><div>  
</div><div>**Option B - encrypted appSettings entry**</div><div>Use this option where the hosting standard requires application settings in</div><div>`Web.config`. Add the following entry inside the existing `&lt;appSettings&gt;`</div><div>section, replacing the example value with the generated secret:</div>```xml
<add key="WebToolzServicesSharedSecret" value="<paste-the-generated-secret>" />

```

<div>There must be exactly one entry with this key. Keep all existing iMIS settings</div><div>and do not replace the complete `&lt;appSettings&gt;` section.</div><div>  
</div><div>**Decrypt appSettings before editing**</div><div>If `appSettings` is protected, its contents appear as `EncryptedData` and must</div><div>not be edited by hand. On the iMIS web server, open Command Prompt as</div><div>Administrator and run:</div><div>  
</div>```powershell
copy /Y "C:\Program Files (x86)\ASI\iMIS\Net\Web.config" "C:\Program Files (x86)\ASI\iMIS\Net\Web.config.pre-WebToolz-4.50.bak"
"%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe" -pdf "appSettings" "C:\Program Files (x86)\ASI\iMIS\Net"
```

<div>Edit `Web.config`, add or update `WebToolzServicesSharedSecret`, save it, and</div><div>then immediately protect the section again:</div><div>  
</div>```powershell
"%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe" -pef "appSettings" "C:\Program Files (x86)\ASI\iMIS\Net" -prov "DataProtectionConfigurationProvider"
```

<div>Confirm that `Web.config` now contains an encrypted `appSettings` section and</div><div>does not contain the plaintext secret. ASP.NET decrypts the section at runtime;</div><div>no application-code change is required.</div><div>  
</div><div>If the site already uses another protected-configuration provider or an</div><div>external `appSettings` file, stop and follow the hosting provider's existing</div><div>procedure rather than changing the provider with the command above.</div><div>  
</div><div>The `DataProtectionConfigurationProvider` output is protected for the machine</div><div>where it was created. Do not copy that encrypted `Web.config` to another web</div><div>server. For a load-balanced or replaceable-server installation, use the site's</div><div>existing shared RSA protected-configuration procedure or configure the machine</div><div>environment variable separately on every node. Coordinate this with the iMIS</div><div>hosting provider before changing an existing encryption provider.</div><div>  
</div><div>**Restart and validate**</div><div>1. Recycle the iMIS application pool and restart the ASI Scheduler service if</div><div> its DLL was replaced.</div><div>2. Open an existing WebToolz page and confirm it renders without an ASP.NET</div><div> configuration, missing-assembly, or Telerik version error.</div><div>3. Open a form containing a WYSIWYG control and confirm that existing content</div><div> loads, edits, saves, and renders correctly.</div><div>4. Run a known IQA-backed WebToolz feature and confirm it succeeds with the new</div><div> secret.</div><div>5. Confirm the former secret is rejected and that the live `Services.asmx` help</div><div> page/WSDL does not advertise `RestApiCall` or</div><div> `RestApiCallWithUsernamePassword`.</div><div>6. Confirm all access is over HTTPS and review the application/event logs after</div><div> the test.</div><div>  
</div><div>Do not put the secret in screenshots, logs, test evidence, or support tickets.</div><div>  
</div><div>**Rollback**</div><div>1. Restore the backed-up WebToolz files and `Web.config`.</div><div>2. Recycle the iMIS application pool and restart the scheduler if applicable.</div><div>3. Restore the former environment variable only if the previous approved</div><div> version requires it. Do not restore or deploy a known legacy package that</div><div> contains the retired unsafe service operations.</div><div>4. Record the failed validation step and relevant error text, with secrets</div><div> removed, before contacting support.</div><div>  
</div><div>For assistance, contact the Zentso support representative responsible for the</div><div>client deployment.</div><div>  
</div><div>**Protected-configuration reference**</div><div>Microsoft documents the `-pef` encryption and `-pdf` decryption switches, the</div><div>`DataProtectionConfigurationProvider` name, and the machine-specific DPAPI</div><div>limitation in [Protecting Connection Strings and Other Configuration</div><div>Information]([https://learn.microsoft.com/en-us/aspnet/web-forms/overview/data-access/advanced-data-access-scenarios/protecting-connection-strings-and-other-configuration-information-cs](https://learn.microsoft.com/en-us/aspnet/web-forms/overview/data-access/advanced-data-access-scenarios/protecting-connection-strings-and-other-configuration-information-cs)).</div></details>### iMIS EMS (2020/Enterprise)

#### Latest

[WebToolz for iMIS EMS 20.3.231.432 (v4.51)](https://docs.zentso.com/attachments/228)

<details id="bkmrk-release-and-installa-1"><summary>Release and Installation Guide</summary>

##### WebToolz 4.51 - Release and Installation Guide

<div>Release date: 28 August 2026 </div><div>Audience: iMIS administrators, implementation partners, and hosting providers</div>##### Release summary

<div><div><div>WebToolz 4.51 targets iMIS 20.2.63 Q3 2026. The main assembly version is</div><div>`4.51.0.0` and it is compiled against ASI `20.3.231.432` and</div><div>Telerik.Web.UI `2026.3.812.462`.</div></div></div><div>  
</div><div>**Changes from WebToolz 4.50:**</div><div>- Updated iMIS and Telerik dependencies for the Q3 2026 iMIS release.</div><div>- Updated the WYSIWYG form control to use the iMIS safe-content HTML editor.</div><div>- Aligned the supplied `System.Buffers` assembly with the version required by</div><div> the WebToolz DNS client dependency.</div><div>- Removed the legacy `RestApiCall` and `RestApiCallWithUsernamePassword`</div><div> web-service operations. Integrations using either operation must be replaced</div><div> with an explicitly implemented, allowlisted integration before upgrading.</div><div>- Removed the embedded IQA service credential. Every environment must now have</div><div> its own shared secret of at least 32 characters.</div><div>  
</div><div>**Important package requirement**</div><div>Install only a newly built WebToolz 4.51 release package supplied by Zentso.</div><div>Do not install or redistribute a 4.48 or 4.49 deployment ZIP: those packages</div><div>predate the 4.51 security changes.</div><div>  
</div><div>Before installation, confirm the supplied `Zengage.FlexibleFormz.dll` reports</div><div>file version `4.51.0.0`:</div>```powershell
(Get-Item '.\Zengage.FlexibleFormz.dll').VersionInfo.FileVersion
```

##### Before installation

<div>1. Confirm the target is iMIS 20.2.63 Q3 2026 and its installed</div><div> `Telerik.Web.UI.dll` is version `2026.3.812.462`.</div><div>2. Schedule an outage or maintenance window. Editing `Web.config` recycles the</div><div> iMIS application.</div><div>3. Back up the iMIS `Net` directory, the current WebToolz files, and the current</div><div> `Web.config`. Record the existing WebToolz version.</div><div>4. Generate a different service secret for each environment. Do not send it in</div><div> email, store it in the release package, commit it to source control, or reuse</div><div> the former embedded credential.</div><div>5. If WebToolz is installed on more than one web server, repeat the file and</div><div> configuration work on every node. See the web-farm note below before copying</div><div> an encrypted configuration file between servers.</div><div>  
</div><div>**Generate the shared secret**</div><div>Run this in Windows PowerShell on an administrator workstation or server. Store</div><div>the output in the organisation's approved password or secrets manager:</div><div>  
</div>```powershell
$secretBytes = New-Object byte[] 32
[Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($secretBytes)
[Convert]::ToBase64String($secretBytes)

```

<div>The resulting Base64 value is 44 characters and satisfies the minimum length.</div>##### Install the files

<div><div><div>The examples below assume the default iMIS path</div><div>`C:\Program Files (x86)\ASI\iMIS\Net`. Use the site's actual path if different.</div>  
<div>1. Copy the supplied `Zengage\Flexible Formz` folder to</div><div>`Net\iParts\Zengage\Flexible Formz`.</div><div>2. Copy `Zengage.FlexibleFormz.dll` and the other supplied runtime DLLs to</div><div>`Net\bin`.</div><div>3. If the ASI Scheduler uses WebToolz, copy `Zengage.FlexibleFormz.dll` to the</div><div>scheduler `bin` directory as well.</div><div>4. Include the following file from the WebToolz release source:</div><div>`WebToolzDeployment\Zengage\WebServices\web.config`.</div><div>Update both service endpoint addresses in this file to use the target iMIS</div><div>server's local IP address and correct iMIS application path, then deploy it</div><div>to `Net\iParts\Zengage\WebServices\web.config`. Do not leave the IP address</div><div>from the release or another environment in place.</div><div>5. Copy the optional SAML and PLUS/API files only when those features are</div><div>licensed and already configured for the site.</div><div>6. For a new installation, import `FormToolz Content Type.xml` in Staff site via</div><div>RiSE &gt; Maintenance &gt; Content Types. Import the AFD IQA example only when AFD</div><div>is licensed. Existing installations normally retain their existing content</div><div>type and configuration.</div></div></div><div>  
</div><div>Do not copy the Q4 2025 Telerik binding redirect into a Q3 2026 installation.</div><div>No WebToolz-specific Telerik redirect is required when the installed assembly is</div><div>version `2026.3.812.462`.</div>##### Configure the IQA service secret

<div>The environment variable is preferred because it keeps the value out of</div><div>`Web.config`. Configure one of the following options, not both. If both are</div><div>present, the environment variable takes precedence.</div><div>  
</div><div>**Option A - machine environment variable (preferred)**</div><div>Run an elevated Windows PowerShell session on each iMIS web server:</div>```powershell
powershell
[Environment]::SetEnvironmentVariable(
    'WEBTOOLZ_SERVICES_SHARED_SECRET',
    '<paste-the-generated-secret>',
    'Machine')
```

<div>Recycle the iMIS IIS application pool after setting or changing the variable so</div><div>the worker process receives the new value. Apply the same secret to every node</div><div>that belongs to the same iMIS site.</div><div>  
</div><div>**Option B - encrypted appSettings entry**</div><div>Use this option where the hosting standard requires application settings in</div><div>`Web.config`. Add the following entry inside the existing `&lt;appSettings&gt;`</div><div>section, replacing the example value with the generated secret:</div>```xml
<add key="WebToolzServicesSharedSecret" value="<paste-the-generated-secret>" />

```

<div>There must be exactly one entry with this key. Keep all existing iMIS settings</div><div>and do not replace the complete `&lt;appSettings&gt;` section.</div><div>  
</div><div>**Decrypt appSettings before editing**</div><div>If `appSettings` is protected, its contents appear as `EncryptedData` and must</div><div>not be edited by hand. On the iMIS web server, open Command Prompt as</div><div>Administrator and run:</div><div>  
</div>```powershell
copy /Y "C:\Program Files (x86)\ASI\iMIS\Net\Web.config" "C:\Program Files (x86)\ASI\iMIS\Net\Web.config.pre-WebToolz-4.50.bak"
"%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe" -pdf "appSettings" "C:\Program Files (x86)\ASI\iMIS\Net"
```

<div>Edit `Web.config`, add or update `WebToolzServicesSharedSecret`, save it, and</div><div>then immediately protect the section again:</div><div>  
</div>```powershell
"%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe" -pef "appSettings" "C:\Program Files (x86)\ASI\iMIS\Net" -prov "DataProtectionConfigurationProvider"
```

<div>Confirm that `Web.config` now contains an encrypted `appSettings` section and</div><div>does not contain the plaintext secret. ASP.NET decrypts the section at runtime;</div><div>no application-code change is required.</div><div>  
</div><div>If the site already uses another protected-configuration provider or an</div><div>external `appSettings` file, stop and follow the hosting provider's existing</div><div>procedure rather than changing the provider with the command above.</div><div>  
</div><div>The `DataProtectionConfigurationProvider` output is protected for the machine</div><div>where it was created. Do not copy that encrypted `Web.config` to another web</div><div>server. For a load-balanced or replaceable-server installation, use the site's</div><div>existing shared RSA protected-configuration procedure or configure the machine</div><div>environment variable separately on every node. Coordinate this with the iMIS</div><div>hosting provider before changing an existing encryption provider.</div><div>  
</div><div>**Restart and validate**</div><div>1. Recycle the iMIS application pool and restart the ASI Scheduler service if</div><div> its DLL was replaced.</div><div>2. Open an existing WebToolz page and confirm it renders without an ASP.NET</div><div> configuration, missing-assembly, or Telerik version error.</div><div>3. Open a form containing a WYSIWYG control and confirm that existing content</div><div> loads, edits, saves, and renders correctly.</div><div>4. Run a known IQA-backed WebToolz feature and confirm it succeeds with the new</div><div> secret.</div><div>5. Confirm the former secret is rejected and that the live `Services.asmx` help</div><div> page/WSDL does not advertise `RestApiCall` or</div><div> `RestApiCallWithUsernamePassword`.</div><div>6. Confirm all access is over HTTPS and review the application/event logs after</div><div> the test.</div><div>  
</div><div>Do not put the secret in screenshots, logs, test evidence, or support tickets.</div><div>  
</div><div>**Rollback**</div><div>1. Restore the backed-up WebToolz files and `Web.config`.</div><div>2. Recycle the iMIS application pool and restart the scheduler if applicable.</div><div>3. Restore the former environment variable only if the previous approved</div><div> version requires it. Do not restore or deploy a known legacy package that</div><div> contains the retired unsafe service operations.</div><div>4. Record the failed validation step and relevant error text, with secrets</div><div> removed, before contacting support.</div><div>  
</div><div>For assistance, contact the Zentso support representative responsible for the</div><div>client deployment.</div><div>  
</div><div>**Protected-configuration reference**</div><div>Microsoft documents the `-pef` encryption and `-pdf` decryption switches, the</div><div>`DataProtectionConfigurationProvider` name, and the machine-specific DPAPI</div><div>limitation in [Protecting Connection Strings and Other Configuration</div><div>Information]([https://learn.microsoft.com/en-us/aspnet/web-forms/overview/data-access/advanced-data-access-scenarios/protecting-connection-strings-and-other-configuration-information-cs](https://learn.microsoft.com/en-us/aspnet/web-forms/overview/data-access/advanced-data-access-scenarios/protecting-connection-strings-and-other-configuration-information-cs)).</div></details>