Modify the Cobra.WinUI.Exe.Config File in the Workstation Folder (netTcpBinding Message Level)

Use this procedure to modify the Cobra.WinUI.exe.config file on each client workstation that connects to the Cobra application server in order to use the netTcpBinding Message level authentication.

You must perform this procedure on each client workstation that connects to the Cobra application server.

To edit the Cobra.WinUI.exe.config file in order to use the netTcpBinding Message level authentication:

  1. Navigate to the Cobra installation directory and open the Workstation folder (for example, C:\Program Files (x86)\Deltek\Cobra\Workstation).
  2. Locate the Cobra.WinUI.exe.config file and open it using a text editor (such as Notepad).
  3. Change the configuration file settings to conform to the protocol required by the Cobra application server.
    1. Change the address protocol value for each endpoint from http to net.tcp.
    2. Change the binding value for each endpoint from customBinding to netTcpBinding.
    3. Change the binding configuration value for each endpoint from compressedBinaryBinding to WindowsClientOverTcp.
    4. Uncomment the netTcpBinding section.
    5. Change the netTcpBinding security mode from Transport to Message.
    6. Uncomment the identity tag on both endpoints.
      Before

      <client>

      <endpoint name="PersistenceService" address="http://<COBRA SERVER NAME>:9009/PersistenceService" binding="customBinding" bindingConfiguration="compressedBinaryBinding" contract="IdeaBlade.Persistence.Wcf.IWcfPersistenceService">

      <!--<identity><servicePrincipalName value="Local Network"></servicePrincipalName></identity>-->

      </endpoint>

      <!-- One endpoint per data source extension -->

      <endpoint name="PersistenceServer" address="http://<COBRA SERVER NAME>:9009/PersistenceServer" binding="customBinding" bindingConfiguration="compressedBinaryBinding" contract="IdeaBlade.Persistence.Wcf.IWcfPersistenceServer">

      <!--<identity><servicePrincipalName value="Local Network"></servicePrincipalName></identity>-->

      </endpoint>

      </client>

      <!--<netTcpBinding>

      <binding name="WindowsClientOverTcp"

      closeTimeout="10:01:00"

      openTimeout="10:01:00"

      receiveTimeout="10:10:00"

      sendTimeout="10:01:00"

      transactionFlow="false"

      transferMode="Buffered"

      transactionProtocol="OleTransactions"

      hostNameComparisonMode="StrongWildcard"

      listenBacklog="10"

      maxBufferPoolSize="2147483647"

      maxBufferSize="2147483647"

      maxConnections="10"

      maxReceivedMessageSize="2147483647">

      <readerQuotas maxDepth="32"

      maxStringContentLength="2147483647"

      maxArrayLength="2147483647"

      maxBytesPerRead="2147483647"

      maxNameTableCharCount="2147483647" />

      <reliableSession ordered="true"

      inactivityTimeout="10:10:00"

      enabled="false" />

      <security mode="Transport">

      <transport clientCredentialType="Windows" />

      </security>

      </binding>

      </netTcpBinding>-->

      After

      <client>

      <endpoint name="PersistenceService" address="net.tcp://<COBRA SERVER NAME>:9009/PersistenceService" binding="netTcpBinding" bindingConfiguration="WindowsClientOverTcp" contract="IdeaBlade.Persistence.Wcf.IWcfPersistenceService">

      <identity><servicePrincipalName value="Local Network"></servicePrincipalName></identity>

      </endpoint>

      <!-- One endpoint per data source extension -->

      <endpoint name="PersistenceServer" address="net.tcp://<COBRA SERVER NAME>:9009/PersistenceServer" binding="netTcpBinding" bindingConfiguration="WindowsClientOverTcp" contract="IdeaBlade.Persistence.Wcf.IWcfPersistenceServer">

      <identity><servicePrincipalName value="Local Network"></servicePrincipalName></identity>

      </endpoint>

      </client>

      <netTcpBinding>

      <binding name="WindowsClientOverTcp"

      closeTimeout="10:01:00"

      openTimeout="10:01:00"

      receiveTimeout="10:10:00"

      sendTimeout="10:01:00"

      transactionFlow="false"

      transferMode="Buffered"

      transactionProtocol="OleTransactions"

      hostNameComparisonMode="StrongWildcard"

      listenBacklog="10"

      maxBufferPoolSize="2147483647"

      maxBufferSize="2147483647"

      maxConnections="10"

      maxReceivedMessageSize="2147483647">

      <readerQuotas maxDepth="32"

      maxStringContentLength="2147483647"

      maxArrayLength="2147483647"

      maxBytesPerRead="2147483647"

      maxNameTableCharCount="2147483647" />

      <reliableSession ordered="true"

      inactivityTimeout="10:10:00"

      enabled="false" />

      <security mode="Message">

      <transport clientCredentialType="Windows" />

      </security>

      </binding>

      </netTcpBinding>

  4. Uncomment the system.net tag on both endpoints.
    Before

    <!--<system.net>

    <connectionManagement>

    <add address="*" maxconnection="8" / >

    </connectionManagement>

    </system.net>-->

    After

    <system.net>

    <connectionManagement>

    <add address="*" maxconnection="8" />

    </connectionManagement>

    </system.net>