Search Results for

    Show / Hide Table of Contents

    Upgrade to 2.7

    Recommendations

    To upgrade a Casewhere deployment to 2.7, you must be running a 2.6-series release.

    Before upgrading Casewhere, always test your application in a staging environment before deploying the upgrade to your production environment. It would be best if you also backup your production database before upgrading.

    If you are deploying Azure App Service using Kudu Zip Push Deploy, you don't have to modify the web.config files manually, only need to update the keys in the Configuration / Application Settings.

    Upgrade versions

    The following changes must be applied in the described order.

    2.7.0.0 - 25/11/2021

    Worker Api - Casewhere.Worker.Api

    Information! If you're replacing the old web.config with the new one e.g. when deploying on Azure App Service, you can ignore this step

    Apply the below changes in the web.config:

    • In the appSettings section, add the following keys:
    <add key="serilog:disableSelfLog" value="false" />
    
    • In the runtime/assemblyBinding section, add the followings:
    <dependentAssembly>
      <assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
    </dependentAssembly>
    
    • In the runtime/assemblyBinding section, update the dependentAssembly for System.Runtime.CompilerServices.Unsafe:
    <dependentAssembly>
      <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
    </dependentAssembly>
    

    Job Site - Casewhere.Hangfire

    Information! If you're replacing the old web.config with the new one e.g. when deploying on Azure App Service, you can ignore this step

    Apply the below changes in the web.config:

    • In the runtime/assemblyBinding section, add the followings:
    <dependentAssembly>
      <assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
    </dependentAssembly>
    
    • In the runtime/assemblyBinding section, update the dependentAssembly for System.Runtime.CompilerServices.Unsafe:
    <dependentAssembly>
      <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
    </dependentAssembly>
    

    Configuration Site - Casewhere.Configuration.Web

    Information! If you're replacing the old web.config with the new one e.g. when deploying on Azure App Service, you can ignore this step

    Apply the below changes in the web.config:

    In the appSettings section, add the following keys:

    <add key="logviewer:MaxJsonLength" value="10000000" />
    
    • In the runtime/assemblyBinding section, add the followings:
    <dependentAssembly>
      <assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
    </dependentAssembly>
    
    • In the runtime/assemblyBinding section, update the dependentAssembly for System.Runtime.CompilerServices.Unsafe:
    <dependentAssembly>
      <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
    </dependentAssembly>
    

    Log fatal events using Azure Application Insights

    Important! This step is applied for deploying on Azure App Service only.

    In Azure Portal, open the Worker Api App Service, navigate to Configuration / Application Settings and add the following keys:

    Key Value
    serilog:using:ApplicationInsights Serilog.Sinks.ApplicationInsights
    serilog:write-to:ApplicationInsights.telemetryConverter Serilog.Sinks.ApplicationInsights.Sinks.ApplicationInsights.TelemetryConverters.TraceTelemetryConverter, Serilog.Sinks.ApplicationInsights
    serilog:write-to:ApplicationInsights.restrictedToMinimumLev Fatal
    serilog:write-to:ApplicationInsights.instrumentationKey You can find the Instrumentation Key value in Azure portal.

    image-20211117230034827

    Enable logging for Worker Site

    Apply the below changes in the web.config:

    Add the configSections before appSettings section:

      <configSections>
        <section name="secureAppSettings" type="System.Configuration.NameValueSectionHandler" />
      </configSections>
    

    In the appSettings section, add the following keys:

    <add key="serilog:minimum-level" value="Debug" />
    <add key="serilog:using:MongoDB" value="Serilog.Sinks.MongoDB" />
    <add key="serilog:write-to:MongoDB.collectionName" value="Logs" />
    

    Add the secureAppSettings section right under the appSettings section:

    <secureAppSettings>
      <add key="serilog:write-to:MongoDB.databaseUrl" value="<Log database connection string. Hint: copy the value from your Worker.Api>" />
    </secureAppSettings>
    

    If you are deploying Azure App Service, just add all the above keys in Configuration / Application Settings.

    2.7.1.0 - 17/01/2022

    Worker Api - Casewhere.Worker.Api

    Information! If you're replacing the old web.config with the new one e.g. when deploying on Azure App Service, you can ignore this step

    Apply the below changes in the web.config:

    • In the appSettings section, add the following keys:
    <!-- Log settings -->
    <add key="serilog:destructure:ToMaximumStringLength.maximumStringLength" value="100000000" />
    <add key="serilog:destructure:ToMaximumCollectionCount.maximumCollectionCount" value="25" />
    
    <!-- Event settings-->
    <add key="events:EnableHotAndCold" value="false" />
    
    • In the runtime/assemblyBinding section, modify the followings:
    <dependentAssembly>
      <assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
    </dependentAssembly>
    

    Worker Site - Casewhere.Web.CaseWorker

    Information! If you're replacing the old web.config with the new one e.g. when deploying on Azure App Service, you can ignore this step

    Apply the below changes in the web.config:

    • In the appSettings section, modify the following key:
    <add key="owin:appStartup" value="Casewhere.Worker.Web.Startup" />
    
    • In the runtime/assemblyBinding section, add the followings:
    <dependentAssembly>
      <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.1.3.0" newVersion="4.1.3.0" />
    </dependentAssembly>
    

    Configuration Site - Casewhere.Configuration.Web

    Information! If you're replacing the old web.config with the new one e.g. when deploying on Azure App Service, you can ignore this step

    Apply the below changes in the web.config:

    • In the appSettings section, add the following keys:
    <!-- Event settings-->
    <add key="events:EnableHotAndCold" value="false" />
    

    Enable Hot and Cold

    Warning! Only enable the feature when your project requires doing so

    Please follow this guideline to learn about the Hot and Cold feature and enable it for your deployment.

    2.7.1.1 - 14/02/2022

    There is no change in configuration.

    2.7.1.2 - 11/03/2022

    Worker Api - Casewhere.Worker.Api

    Information! If you're replacing the old web.config with the new one e.g. when deploying on Azure App Service, you can ignore this step

    Apply the below changes in the web.config:

    • In the appSettings section, remove the following keys:

      • serilog:using:ApplicationInsights
      • serilog:write-to:ApplicationInsights.telemetryConverter
      • serilog:write-to:ApplicationInsights.restrictedToMinimumLev
    • In the secureAppSettings section, remove the key:

      • serilog:write-to:ApplicationInsights.instrumentationKey

    Important! This step is applied for deploying on Azure App Service only.

    In Azure Portal, open the Worker Api App Service, navigate to Configuration / Application Settings and remove the following keys:

    • serilog:using:ApplicationInsights
    • serilog:write-to:ApplicationInsights.telemetryConverter
    • serilog:write-to:ApplicationInsights.restrictedToMinimumLev
    • serilog:write-to:ApplicationInsights.instrumentationKey

    2.7.1.3 - 28/04/2022

    Important! In this release we need run migration data for this bug: Duplicate ComponentRules when publishing the worker site

    To remove the duplication, use the url with the following format:

    • [Admin domain]/Maintenance/RemoveWorkerSiteComponentDuplication

      This Url to preview the list of duplicated components that will be removed later, but they are not removed

    • [Admin domain]/Maintenance/RemoveWorkerSiteComponentDuplication?acceptRemoval=true

      This Url to remove the duplicated components and show the list of results.

    2.7.1.4 - 07/06/2022

    Information! If you're replacing the old web.config with the new one e.g. when deploying on Azure App Service, you can ignore this step

    • In Azure Portal, open the Worker site App Service, navigate to Configuration / Application Settings and add the new key:

      • Name: fcn:StopMonitoringSubFolders
      • Value: true

    2.7.1.5 - 11/08/2022

    Impact in this version, we had an upgrade of the latest version of Azure Storage SDK (12.13.0). So, these features will be affected:

    • The management of the Files on Admin site
    • The IDocumentApi in the Scripted Activity
    • The Upload file component in the Form Activity
    • The download file function from the Worker Site

    Information! If you are replacing the old web.config with the new one, then you can ignore this step.

    Worker Api - Casewhere.Worker.Api

    Open the web.config and update the setting key below:

      <dependentAssembly>
          <assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
          <bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
      </dependentAssembly>
    

    2.7.1.6 - 08/09/2022

    Important! From this version, please following instructions below if we are using Azure Application Insight otherwise just skip it.

    Enable Azure Application Insight codeless integration

    2.7.1.7 - 20/10/2022

    There is no change in configuration.

    2.7.1.8.patch - 20/10/2023

    Important! This version is a patch, please following instructions below to deploy a hotfix path.

    • Extract the hotfix patch package to a temp folder.

    On Azure

    • Go to Kudu site and navigate to the Kudu wwwroot directory of each sites:
      • Configuration.Web
      • Casewhere.Web.CaseWorker
      • Casewhere.Worker.Api
    • Drag and drop corresponding files to the Kudu wwwroot directory of target sites:
      • Configuration.Web.zip
      • Casewhere.Web.CaseWorker.zip
      • Casewhere.Worker.Api.zip

    On Premise

    • Copy all files and folders from patch to the target folders
      • Configuration.Web
      • Casewhere.Web.CaseWorker
      • Casewhere.Worker.Api

    2.7.2 - 20/07/2022

    Migrating Parameters for Server rules:

    Important! We need to run migration script for query string parameters are used in Web Trigger Server Rules

    • Run Api for migrating Parameters syntax for Web Trigger Server Rules:

      [Admin domain]/Maintenance/MigrateParametersForServerRule

      // Old script
      @parameters["Code"] == "AP001"
      
      // New script
      @parameters["Code"].ToString() == "AP001"
    

    Notes: The Query string Name will be case insensitive.

    Web Trigger Support PUT/DELETE method:

    • Should overwrite the web.config from release package.
    • If not overwrite, we need to change the web.config of Worker API and add the setting bellow:
    <system.webServer>
      <handlers>
        <remove name="WebDAV" />
      </handlers>
    </system.webServer>
    

    Concurrency settings for Workflow Activity:

    • Should overwrite the web.config from release package.
    • If not overwrite, we need to change the web.config of Worker API and add the new setting keys bellow:
      <appSettings>
        <!-- Engine Settings -->
        <add key="engine:ConcurrencyMaxTimeout" value="00:03:00" />
        <add key="engine:ConcurrencyDelayTime" value="2000" />
        <add key="engine:WorkflowExecutionLockMaxTimeout" value="00:01:00" />
      </appSettings>
    

    Update frontend libs for security patches:

    • The client script of worker site will be migrated to:
      • Jquery v3.2.1 -> v3.6.0
      • Bootstrap v4.0.0 -> v4.6.0
      • JqueryUI v1.12.1 -> v1.13.1

    Important! Please consider Warning console log in Browser for migrating worker site client script.

    DslCompilerContext: Improve SetTemp, GetTemp:

    • The ctx.GetTemp will throw an exception when key is not existed.
    • Support ctx.HasTempKey to check the temporary key existed or not.
    In This Article
    Back to top Generated by DocFX