Content Collaboration SignalR problem

Vote:
 

I've installed the content collaboration addon in EpiServer version 9.6.1. After setup everything including SignalR (http://world.episerver.com/documentation/Items/Developers-Guide/EPiServer-CMS/75/Configuration/Configuring-NET-SignalR/), it seems to work correctly in Firefox and IE. However in Chrome I can't edit any content (edit screen completly white) as long as the gadget is added to one of the panels (left or right). This is tested on different computurs. 

The error in Chrome:

TypeError: $.hubConnection is not a function
at _7a.open (/EPiServer/EPiServer.ContentCollaboration/1.2.0.9000/ClientResources/ContentCollaboration/packaged.js:2)
at _7a.initialize (/EPiServer/EPiServer.ContentCollaboration/1.2.0.9000/ClientResources/ContentCollaboration/packaged.js:2)
at _2._initializeStores (/EPiServer/EPiServer.ContentCollaboration/1.2.0.9000/ClientResources/ContentCollaboration/packaged.js:2)
at _2.initialize (/EPiServer/EPiServer.ContentCollaboration/1.2.0.9000/ClientResources/ContentCollaboration/packaged.js:2)
at null. (epi.js:2)
at dojo.js:15
at _c8 (dojo.js:15)
at _36 (dojo.js:15)
at dojo.js:15
at _37 (dojo.js:15)(anonymous function) @ epi.js:2

Can anyone help me out?
Does any one know if this addon is still supported?

#144713
Feb 17, 2016 21:42
Vote:
 

Please give us the ContentCollaboration version.

We will look into this issue and file a bug. Thank you.

Thach lockevn.

#144728
Feb 18, 2016 9:14
Vote:
 

http://nuget.episerver.com/en/OtherPages/Package/?packageId=EPiServer.ContentCollaboration 1.2.0.9000 . It's the latest version, but it's using an old version of SignalR maybe that's part of the cause. However I tried to upgrade SignalR but that's not possible because it's restricted < 2.1.0

#144736
Edited, Feb 18, 2016 10:28
Vote:
 

Can you please, strictly follow the guide here for installing/configuring CC?

http://world.episerver.com/documentation/Items/Developers-Guide/Episerver-CMS/8/Configuration/configuring-net-signalr1/

And give us the detail version info of your components (the best is your package.config)

#144738
Feb 18, 2016 11:06
Vote:
 

Thanks for your quick replies; I followed this instruction; However I'am using VS 2015 and .net framework 4.5.2 (but that could not be an issue because the article say: "ensure that .NET Framework 4.5.1 (or later)")

Some other things I've write down during the investigation of this:

- Adding the gadget on the left panel sometimes gives problems in firefox as well (this make me think the order of loading certain scripts isn't correctly)
- a warning in FF:  Use of getPreventDefault() is deprecated.  Use defaultPrevented instead.1 contentcollab.combined.min.js:3:3869 (this make me think there is a script conflict between the addon and episerver ui (or a version problem between shared scripts))
- Cleaning up "Temporary ASP.NET Files\root\" (like on: http://stackoverflow.com/questions/20685858/signalr-2-0-error-signalr-hubs-404-not-found-when-using-iis) fixed it (on my local machine) but after one successfull request in Chrome, the second request the problem occured again (this make me think it's a caching (or maybe signalr version) problem)

package.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Antlr" version="3.4.1.9004" targetFramework="net452" />
  <package id="Castle.Core" version="3.3.3" targetFramework="net452" />
  <package id="Castle.Windsor" version="3.3.0" targetFramework="net452" />
  <package id="EntityFramework" version="6.0.0" targetFramework="net452" />
  <package id="EPiServer.Azure" version="9.0.1" targetFramework="net452" />
  <package id="EPiServer.CMS" version="9.6.1" targetFramework="net452" />
  <package id="EPiServer.CMS.Core" version="9.6.1" targetFramework="net452" />
  <package id="EPiServer.CMS.UI" version="9.3.8" targetFramework="net452" />
  <package id="EPiServer.CMS.UI.Core" version="9.3.8" targetFramework="net452" />
  <package id="EPiServer.ContentCollaboration" version="1.2.0.9000" targetFramework="net452" />
  <package id="EPiServer.Find" version="11.1.1.4013" targetFramework="net452" />
  <package id="EPiServer.Find.Cms" version="11.1.1.4013" targetFramework="net452" />
  <package id="EPiServer.Find.Framework" version="11.1.1.4013" targetFramework="net452" />
  <package id="EPiServer.Framework" version="9.6.1" targetFramework="net452" />
  <package id="EPiServer.Logging.Log4Net" version="2.0.0" targetFramework="net452" />
  <package id="EPiServer.Packaging" version="3.2.3" targetFramework="net452" />
  <package id="EPiServer.Packaging.UI" version="3.2.3" targetFramework="net452" />
  <package id="Geta.Tags" version="2.1.4" targetFramework="net452" />
  <package id="ImageResizer" version="4.0.1" targetFramework="net452" />
  <package id="ImageResizer.Plugins.EPiServerBlobReader" version="4.0.2" targetFramework="net452" />
  <package id="jQuery" version="1.6.4" targetFramework="net452" />
  <package id="log4net" version="2.0.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.Providers.Core" version="2.0.0" targetFramework="net452" />
  <package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.SignalR" version="2.0.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.SignalR.Core" version="2.0.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.SignalR.JS" version="2.0.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.SignalR.SystemWeb" version="2.0.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.Client" version="5.0.0" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.Core" version="5.0.0" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="5.0.0" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net452" />
  <package id="Microsoft.Azure.KeyVault.Core" version="1.0.0" targetFramework="net452" />
  <package id="Microsoft.Data.Edm" version="5.6.4" targetFramework="net452" />
  <package id="Microsoft.Data.OData" version="5.6.4" targetFramework="net452" />
  <package id="Microsoft.Data.Services.Client" version="5.6.4" targetFramework="net452" />
  <package id="Microsoft.Net.Http" version="2.0.20710.0" targetFramework="net452" />
  <package id="Microsoft.Owin" version="3.0.1" targetFramework="net452" />
  <package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net452" />
  <package id="Microsoft.Owin.Security" version="2.0.1" targetFramework="net452" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net452" />
  <package id="Microsoft.WindowsAzure.ConfigurationManager" version="1.7.0.0" targetFramework="net452" />
  <package id="Newtonsoft.Json" version="6.0.8" targetFramework="net452" />
  <package id="NuGet.Core" version="2.5.0" targetFramework="net452" />
  <package id="Owin" version="1.0" targetFramework="net452" />
  <package id="structuremap.web-signed" version="3.1.6.186" targetFramework="net452" />
  <package id="structuremap-signed" version="3.1.6.186" targetFramework="net452" />
  <package id="System.Spatial" version="5.6.4" targetFramework="net452" />
  <package id="WebGrease" version="1.5.2" targetFramework="net452" />
  <package id="WindowsAzure.ServiceBus" version="3.0.7" targetFramework="net452" />
  <package id="WindowsAzure.Storage" version="6.1.0" targetFramework="net452" />
</packages>

Web.config

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

<compilation targetFramework="4.5.2" optimizeCompilations="false" /> <!-- this was always false -->

 <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.ApplicationModules" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.6.1.0" newVersion="9.6.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.Data.Cache" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.6.1.0" newVersion="9.6.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.Data" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.6.1.0" newVersion="9.6.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.Events" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.6.1.0" newVersion="9.6.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.Framework" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.6.1.0" newVersion="9.6.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.Licensing" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.6.1.0" newVersion="9.6.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.Shell" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.6.1.0" newVersion="9.6.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.Configuration" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.6.1.0" newVersion="9.6.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.6.1.0" newVersion="9.6.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.Enterprise" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.6.1.0" newVersion="9.6.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.ImageLibrary" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.6.1.0" newVersion="9.6.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.LinkAnalyzer" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.6.1.0" newVersion="9.6.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.Web.WebControls" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.6.1.0" newVersion="9.6.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.XForms" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.6.1.0" newVersion="9.6.1.0" />
      </dependentAssembly>
      <probing privatePath="modulesbin" />
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.Cms.Shell.UI" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.3.8.0" newVersion="9.3.8.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.Shell.UI" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.3.8.0" newVersion="9.3.8.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.UI" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.3.8.0" newVersion="9.3.8.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.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>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.Packaging.CmdAPI" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="1.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.Packaging" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.2.3.0" newVersion="3.2.3.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.Logging.Log4Net" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="EPiServer.Azure" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.0.1.0" newVersion="9.0.1.0" />
      </dependentAssembly>
    <dependentAssembly><assemblyIdentity name="EPiServer.Find" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-11.1.1.4013" newVersion="11.1.1.4013" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.Find.Framework" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-11.1.1.4013" newVersion="11.1.1.4013" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.Find.Blocks" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="1.0.0.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.Find.Cms" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-11.1.1.4013" newVersion="11.1.1.4013" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.Find.Optimizations" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-11.1.1.4013" newVersion="11.1.1.4013" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.Find.Statistics" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-11.1.1.4013" newVersion="11.1.1.4013" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.Find.UI" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-11.1.1.4013" newVersion="11.1.1.4013" /></dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.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>

Thanks for the help

#144757
Feb 18, 2016 13:20
Vote:
 

I now also had a problem in Firefox. However when I run the next commands in powershell everything is working fine again in firefox:

net stop w3svc  

Remove-Item -Path "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\*" -Force -Recurse 
  
Remove-Item -Path "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\*" -Force -Recurse 

net start w3svc
#144815
Feb 19, 2016 12:02
Vote:
 

In my own opinion, this is not browser problem. It's might be problem of using serverside package/DLL. Could you please, file a Support ticket about this? We will have chance to investigate closely with appropriate resource.

Thank you.

#144947
Feb 23, 2016 8:39
Vote:
 

The issue is caused by conflicting jQuery versions - Collaboration and Geta Tags has different jQuery versions.

Here is an issue on Geta Tags:

https://github.com/Geta/Tags/issues/40

Unfortunately, I couldn't find a way to "localize" jQuery version for Geta Tags. It seems that EPiServer does not have mechanisms to load different versions of jQuery or other libraries for modules. Also, it is not possible for Geta Tags to use EPiServer's jQuery as it's version is 1.3.x

#151715
Aug 04, 2016 16:58
Vote:
 

Please file a support case so we can debug your solution better. Thank you.

For quick and dirty workaround, I can give a few information:

CC uses the contentcollab.combined.min.js

This file is created by merging content of 

  • jquery-1.6.4.min.js
  • and jquery.signalR-2.0.3.js (modified by ContentCollaboration AddOn, to make SignalR works with its own jQuery instance and does not affect other jQuery instance)
    • All signalR object in clientside is bound to object window.epiContentCollabJQuery164
    • To workaround, you should modify this file, with two of our modifications (in the beginning and in the end, tagged with "CC ADDON MODIFY")

// ======== CC ADDON MODIFY:
// We need to use our own jQuery (of version 1.6.4 or above) in order to run SignalR client library
// This SignalR for jQuery below will be bound to our own instance of jQuery.
// We also 
// TECHNOTE: Wrap jQuery 1.6.4 into new window's object, without confliction with original Shell's EPiJQuery
(function ($, window, undefined) {
window.epiContentCollabJQuery164 = $.noConflict(true);
})(window.jQuery, window);
// ========

// ======== CC ADDON MODIFY:
// TECHNOTE: Because the generated code for SignalR connecting use $ object (which is their mistake), 
// we create mapping to signalr inside "older" jQuery ($.signalR)
(function ($, $164, window, undefined) {
$.signalR = $.signalR || $164.signalR;
$.hubConnection = $.hubConnection || $164.hubConnection;
}(window.jQuery, window.epiContentCollabJQuery164, window));
// ========



#151921
Aug 10, 2016 11:44
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.