Ensure Environment Prerequisites for .NET Cache
Before you start creating caches and cache clusters, you need to ensure that the following criterias have been met:
In the case of ASP.NET Core installation, the NCache Service is run with admin credentials. If you have provided the required admin credentials at the time of setup installation, then you do not need to run NCache Service as administrator. But, in case you did not, you can do so by following the steps mentioned in the Run NCache Service as Administrator section.
If you have the firewall enabled, then you need to make sure to expose NCache specific ports, the details of which are provided in the Configure Firewall section.
If you're using a Distributed Cache with Persistence or Distributed Lucene with Persistence in-memory store type, it is strongly encouraged that you use an SSD instead of an HDD for optimal performance.
Run NCache Service as Administrator for .NET Cache
You must run NCache Service as your local Administrator to publish PerfMon counters in .NET.
Go to the Start menu on the Taskbar and type Services.
Go to Services and then select NCacheSvc.
Right-click on NCacheSvc and select Properties.
From the Properties Window, select Log On and enter the Administrator's credentials. Select Apply.
It prompts you with a WARNING window which requires a Service Restart for changes to take effect. Restart the NCache Service by right-clicking on NCacheSvc.
Configure Firewall (Optional)
If you have a firewall or a router between your cache clients (web/app servers) and the cache servers, then you must open up specific ports in your firewall. This will ensure that cache clients are able to talk to the cache servers.
NCache server uses the following TCP ports for communication.
- Client/Server Port: 9800 (Default TCP port for cache client and server communication).
- Management Port: 9803 (Default TCP port for PowerShell cmdlets and NCache Service).
- Cluster Port: Cluster-port that you define in a cache cluster configuration. It is recommended to use a consecutive range of ports (the default range is 9900-10099). Configure Firewall to allow communication on this port range.
- Cache Management Port: The port range for cache management. The default port range is 10100-10199.
- Web Management Port: 9801 (Default TCP port for NCache Management Center).
- Prometheus Server Port: 9090 (Default port at which the Prometheus server runs).
- SNMP Listeners Info Port: 9813 (Default port at which SNMP listens to). This port is configurable and can be changed in the Alachisoft.NCache.Service.dll.config file.
- Metrics Server Port: 9811 (Default TCP port for the Metrics Server). The Prometheus agent also uses this port. This port is configurable and can be changed in the Alachisoft.NCache.Service.dll.config file.
If you want to use the bridge, open the following ports:
- Bridge Port: Default is 9805.
- Bridge Management port: Default is 9806.
- Bridge Ports: Default range is 10200-10250.
But, if there is a port conflict and the above default ports are being used by other applications, then you must configure all the cache servers to use different ports.
Step 1: Modify The Service Configuration File
You can also change ports by modifying the service configuration file of all servers. This file is found in the NCache installation as follows:
- .NET Framework: Alachisoft.NCache.Service.exe.config located in %NCHOME%\bin\service
.NET: Alachisoft.NCache.Service.dll.config located in %NCHOME%\bin\service
Change the “Port” for Client/Server communication and “ManagementPort” for NCache management in the file below.
<appSettings>
...
<add key="NCacheServer.Port" value="9800"/>
...
<add key="NCacheServer.ManagementPort" value="9803"/>
...
</appSettings>
Step 2: Restart NCache Service
For the configuration changes made to take effect, restart the NCache Service. Make sure you have enough privileges to restart the service. If the user is not part of the Administrator's group, make sure to run Windows PowerShell as administrator, otherwise you might get an error message that Cannot open ncachesvc service on computer.
Execute the following command in the terminal of your choice to restart the NCache Service:
Restart-Service -Name NCacheSvc