WCF Communication Protocol
WCF is a deprecated protocol that some systems use for FrameWorX communication.
A system is using WCF if its endpoint settings are configured to use anything other than WebSockets (including HTTP, WS HTTP, and NET.TCP). These settings are configured in FrameWorX Server Location.
To be able to make the configuration, click on the "Configure" button for any endpoint on any tab.
Configuring the Endpoint Settings in FrameWorX Server Location
ICONICS recommends using WebSockets whenever possible.
Relation of the WCF Communication protocol to Backwards Compatibility
Starting 10.97.2, WebSockets is the new communication default. The WCF protocol changed. It is disabled and is no longer updated from Microsoft. You may want to enable WCF in order to be backwards compatible with the previous versions.
If you are using remote collectors, you must follow the steps described in How to enable or disable WCF communication? to re-enable WCF.
If you are not using Hyper Historian’s remote collectors, you can configure your system to use WebSockets (more secure) or to re-enable WCF communication (easier to implement).
How to enable or disable WCF communication?
WCF communication is disabled by default, as it is an obsoleted protocol. If you need to use NET.TCP communication channel, you can re-enable WCF by editing FwxServer.Network.config (located by default in C:\ProgramData\ICONICS), looking for the "WcfTransport" value, and setting it to true.
After making this change, restart the FrameWorX Server please.
What are WCF connection limits?
When using WCF, there is a limit for connections that can be opened at the same time. If this limit is exceeded, no new connections can be opened. This can lead to issues where clients fail to connect to licensing or security.
WebSockets, which is the recommended communication protocol for FrameWorX, has no such limit.
The limit for WCF connections can be configured in the IcoFwxServer.exe.config file by looking for this section and modifying the numbers in bold:
<!-- FwxServer service behavior-->
<behavior name="Ico.Fwx.Communication.Server.FwxStandardAsyncService.Behavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" httpHelpPageEnabled="true" />
<dataContractSerializer maxItemsInObjectGraph="4000000" />
<serviceThrottling maxConcurrentSessions="256" maxConcurrentCalls="256" />
Make sure to restart the ICONICS FrameWorX service after making changes to this file.
You should not change these numbers unless you are experiencing issues. The default values should be fine for most systems.
Note that the number of concurrent connections is not the same as the number of running applications or clients. A single application or client may use multiple connections.
The maxConcurrentSessions and maxConcurrentCalls should always be the same number except if tech support say something different.
You may wish to increase this limit if you are seeing licensing or security issues that you believe are due to the system having reached the maximum concurrent connections. Doubling the maxConcurrentSessions and maxConcurrentCalls value is usually a good first step.
Note that this limit protects a system from being overloaded by too many connections. A limit that is set too large may leave a system vulnerable to a denial of service (DoS) attack, so change this value with care.