On-Premises Installation: Upgrading to ConceptShare V5

ConceptShare V5 runs on .NET 4.5.2 and requires an update to your IIS Application Pool.

You can download .NET 4.5.2 here. Install the .NET version on all your web servers and queues servers.

Upgrade Checklist

Step Description
A Update the IIS Application Pool.
B Synchronize Machine Keys.
C Turn On Windows Feature - WCF.
D Apply Configuration Updates.
E Apply Changes for 5.2..
Apply Changes for 5.3.
Apply Changes for 5.5.

A. Update the IIS Application Pool

  1. Open the IIS snap-in and find the ConceptShare Application Pool.
  2. Change the .NET CLR version to v4.0.30319, and then click OK.

B. Synchronize Machine Keys

This applies only to server farm.

  1. In the web.config on every web server, make sure to enter the same Machine Keys (both the validationKey and the decryptionKey: https://msdn.microsoft.com/en-us/library/ff649308.aspx#paght000007_webfarmdeploymentconsiderations

C. Turn On Windows Feature - WCF

  1. In your machine, open Programs and Features, and then click Turn Windows features on or off.
  2. In the Server Manager, select Installation Type, Role-based or feature-based installation, and then click Next.
  3. Select Server Roles and click Next.
  4. Under features, expand .NET Framework 4.5 Features, and then expand WCF Services.
  5. Select HTTP Activation and click Install.

D. Apply Configuration Updates

  1. Add the following to your ConceptShare.V4.Queue.config file after </Settings> but before </configuration>, if it does not already exist:
    <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /></startup>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.Data.Services.Client" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-5.7.0.0" newVersion="5.7.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-5.7.0.0" newVersion="5.7.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-5.7.0.0" newVersion="5.7.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-3.3.0.0" newVersion="3.3.0.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
  2. Add the following to your web.config after the </system.serviceModel> node but before the </configuration> node, if it does not already exist:
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.Data.Services.Client" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-5.7.0.0" newVersion="5.7.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-5.7.0.0" newVersion="5.7.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-5.7.0.0" newVersion="5.7.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-3.3.0.0" newVersion="3.3.0.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>

E. Apply Changes for 5.2

  1. Add the following line to your web.config. This line should be within the <handlers> section:
    <add name="WebhookHandler" verb="POST" path="bridge/listener/*" 
    type="ConceptShare.V4.Web.WebhookHandler, ConceptShare.V4.Framework" />
  2. Delete the following lines from your web.config if it exists. These lines should be within the <handlers> section.
    <remove name="AnnotatorApiHandler" />
    
    <add name="AnnotatorApiHandler" verb="*" path="annotator.ashx" 
    type="ConceptShare.V4.Annotator.AnnotatorApiHandler, 
    ConceptShare.V4.Framework" />

Apply Changes for 5.3

  1. Add the following lines to your web.config under system.webServer\staticContent:
    <remove fileExtension=".woff2" />
    <mimeMap fileExtension=".woff2" mimeType="font/woff2" />

Apply Changes for 5.5

  1. Update Web.config and ConceptShare.V4.Queue.exe.config:
    • FROM
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />                  
        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
       </dependentAssembly>
    • TO
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />                  
        <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
       </dependentAssembly>