HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

.NET SignalR

ASP.NET SignalR is a library for developing real-time web functionality, allowing for bi-directional communication between server and client.

SignalR is used by some of the Optimizely apps, such as Live Monitor.

📘

Note

If you get errors about SignalR not being set up correctly when you start the Episerver user interface in the JavaScript console, clear the .NET temporary files.

Configure SignalR as follows:

  1. If you are using Visual Studio 2012, ensure that .NET Framework 4.5.1 (or later) and the developer pack are installed.

  2. In Visual Studio, do the following steps in a project file, such as Alloy.csproj:
    a. Right-click the project and select Properties.
    b. Change Target framework to .NET Framework 4.5.1 or later.
    c. Save the project as solution, for example, Alloy.sln.

  3. Install the Microsoft.AspNet.SignalR package from NuGet.org, or go to Visual Studio > Tools > NuGet Package Manager > Package Manager Console, and run the command:

    Install-Package Microsoft.AspNet.SignalR -Version 2.0.3
    
  4. Open web.config and add the following lines:

    <configuration>
         ...
           <runtime>
             <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
             ...
               <dependentAssembly>
                 <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
                   <bindingRedirect oldVersion="0.0.0.0-2.0.999.999" newVersion="2.0.1.0" />
               </dependentAssembly>
               <dependentAssembly>
                 <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
                   <bindingRedirect oldVersion="0.0.0.0-2.0.999.999" newVersion="2.0.1.0" />
               </dependentAssembly>
               <dependentAssembly>
                 <assemblyIdentity name="Microsoft.AspNet.SignalR.Core" publicKeyToken="31bf3856ad364e35" culture="neutral" />
                   <bindingRedirect oldVersion="0.0.0.0-2.0.3.0" newVersion="2.0.3.0" />
               </dependentAssembly>
             </assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
           </runtime>
         ...
    </configuration>
    

    The newVersion is the real version value of running assemblies on the website. For example, 2.0.1.0 for Microsoft.Owin, 2.0.3.0 for Microsoft.AspNet. SignalR.Core might not be running on your website.

  5. Add the following line in web.config under appSettings:

    <add key="owin:AutomaticAppStartup" value="false" />
    
  6. Rebuild the solution and refresh the website. Ensure the website runs as normal.

  7. Log in to the website and go to Add-ons (applications) and install the Live Monitor.

  8. Restart the website.

  9. Open web.config again, and change the following line under appSettings:

    <add key="owin:AutomaticAppStartup" value="false" />
    

    to

    <add key="owin:appStartup" value="EPiServerContentCollaborationOWINStartup" />
    

    This example shows configuration for Content Collaboration. For LiveMonitor, the startup value is EPiServerLiveMonitorOWINStartup.

OWIN start up and optimizeCompilations

📘

Note

The OWIN startup needs a class. To set up a start-up class, see OWIN authentication.

If your project previously did not have an OWIN startup class, and optimizeCompilations was enabled, then sometimes the new code is not executed, which may result in errors because the OWIN functionality is not set up. To work around this, temporarily set optimizeCompilations in web.config to false to clear the cache, start the site, and then you can set optimizeCompilations to true again.