Environment
Business Central 27.0 on-premises (platform 27.0.41766.0)
Windows Server, single host running three BC Server instances
Install path: D:\Program Files\Microsoft Dynamics 365 Business Central\270\Service\
What we were doing
We needed to give the server outbound internet access through our corporate proxy. We configured it by setting machine-level environment variables:
HTTP_PROXY = http://proxy.internal.local:8080
HTTPS_PROXY = http://proxy.internal.local:8080
NO_PROXY = localhost;127.0.0.1;*.local
Everything kept working normally for several hours after the change. Then Business Central broke — reporting stopped working across all three instances at once.
The error
The Microsoft-DynamicsNAV-Common/Admin event log fills with event ID 701, category Reporting, roughly every 15 seconds, on every instance:
(SideServiceProcessException): ParentException: SideServiceProcessException
Could not ensure side service is alive:
D:\...\270\Service\SideServices\Microsoft.BusinessCentral.Reporting.Service.exe
ExceptionStackTrace:
at Microsoft.Dynamics.Nav.Runtime.ReportingProcessStartup.InitializeReportingServiceConfiguration()
at Microsoft.Dynamics.Nav.Runtime.SideServiceProcessClient.TryStartService()
InnerException:
RootException: NavNCLOperationCanceledException
Error Code: 22928073
Could not connect to the reporting service in time.
ExceptionStackTrace:
at Microsoft.BusinessCentral.Reporting.Client.ReportingServiceGrpcClient.EnsureConnectivityAsync()
What is the supported way to configure an HTTP proxy on a Business Central on-premises server?
Are machine-level HTTP_PROXY / HTTPS_PROXY variables supported at all, or should we use WinHTTP (netsh winhttp set proxy) or per-instance configuration?
Is there any documentation on the side services (SideServices\, ReportingServiceIsSideService, ReportingServiceEstablishConnectionTimeout, SideServiceProcessAliveCheckRate)?
I can only find ReportingServicePort on Microsoft Learn — the rest seems undocumented.
Has anyone else hit this after introducing a proxy on a BC on-prem host? I
RESOLVED:
Thank you all for the replies — they pointed us in the right direction.
A short update on where we landed:
NO_PROXY syntax was indeed the main issue. We rewrote it comma-separated, and with a leading dot for the domain: localhost,127.0.0.1,::1,<server>,<server>.<domain>,.local. As you said, with the previous (semicolon / wildcard) syntax nothing was excluded, so even internal calls were tunneled through the corporate proxy and came back as 403 Forbidden.
We verified it on the proxy side. Our network team confirmed on the outgoing proxy (squid) that the internal requests were hitting it before the change, and stopped after it — which matched exactly what you described.
Hosts file. We removed/commented the extra manual entries so normal DNS resolution is used again, and the entries that were really needed (CRL endpoints) were moved to the proxy instead.
Conflicting ports. We also found that some of our BC service instances on the same server had overlapping port assignments, which was causing part of the noise in the logs.
IIS / Web Client. Finally, the Web Server instance was configured with the short server name instead of the FQDN. Fixing it with:
Set-NAVWebServerInstanceConfiguration -WebServerInstance <Instance> -KeyName Server -KeyValue '<server>.<domain>'
followed by a restart of the BC service instance and the IIS application pool, resolved the remaining A server was not found at http://<server>:<port>/<Instance>/Service errors. Using the full FQDN everywhere is what made the NO_PROXY entries actually match.
Key takeaway for anyone hitting this: use the FQDN for all internal BC endpoints, keep NO_PROXY comma-separated with a leading dot for the domain suffix, and remember the variables are only read at process start — so restart both the BC service and the IIS app pool after every change.
Thanks again for the help.