Known issues in Content Manager

The following list describes issues known to exist in Content Manager.

Notification broadcasting is not supported out of the box for the Content Manager SQL Azure database

Although Azure databases are supported as of SDL Web 8.5, you need to apply some additional backplane hub configuration if you want to use broadcast notification. Specifically, you need to specify your Azure service bus and service bus endpoint in the server-side Content Manager configuration file, Tridion.ContentManager.config located in the %TRIDION_HOME%\config\ folder.

To find out your service bus endpoint, visit your Azure Portal and select the type Messaging under Service Bus to see the endpoint.

After opening this file for editing, find the section called signalrBackplaneHub, which looks like this:
<signalrBackplaneHub messageBusType="Microsoft.AspNet.SignalR.SqlServer.SqlMessageBus" 
  scaleoutConfigurationType="Microsoft.AspNet.SignalR.SqlScaleoutConfiguration" 
  assembly="Microsoft.AspNet.SignalR.SqlServer, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
You should replace it with the following:
<signalrBackplaneHub messageBusType="Microsoft.AspNet.SignalR.ServiceBus.ServiceBusMessageBus" 
  scaleoutConfigurationType="Microsoft.AspNet.SignalR.ServiceBusScaleoutConfiguration" 
  assembly="Microsoft.AspNet.SignalR.ServiceBus, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
  <backplaneConnectionParameters>
    <add parameter="Endpoint=ENDPOINT" />
    <add parameter="topicPrefix" />
  </backplaneConnectionParameters>
</signalrBackplaneHub>

where ENDPOINT is the endpoint you found in the Azure Portal.

Save and close the file to apply your changes, then restart IIS.

.NET method Uri.EscapeDataString(urlString) has changed behavior
Version 4.0 or older of the Microsoft .NET Framework is not supported. This may have an effect on how your URLs are parsed if they contain brackets:
  • In .NET 4.0 and older, characters that are reserved in RFC 2396 are escaped. RFC 2396 allows brackets.
  • In .NET 4.5 and newer, characters that are restricted in RFC 3986 are escaped. RFC 3986 restricts brackets.

This change is related to the enabling of IRIs (Internationalized Resource Identifiers). For more information, refer to this page on the MSDN Web site: https://msdn.microsoft.com/en-us/library/system.uri%28v=vs.110%29.aspx

To quickly see the difference in behavior, run the following code, targeting first .NET 4.0 and then .NET 4.5.2:
string url= @"http://some.url/page (bracketed).html";
Console.WriteLine(url);
Console.WriteLine(Uri.EscapeDataString(url));
The complete list of characters that are restricted (that is, that will be encoded) as per RFC 3986 are:
: / ? # [ ] @ ! $ & ' ( ) * + , ; =
Use of Recursive in OrganizationalItemItemsFilter causes other filter parameters to be ignored

An OrganizationalItemItemsFilter lets you combine multiple filter parameters. One filter parameter is Recursive, which causes the filter to recurse into child organizational items. However, setting Recursive to true has the unintended side effect of rendering almost all other filter parameters ineffective, as if they were not set. Specifically, if Recursive is set to true, ItemTypes is the only other filter parameter that gets processed; the filter ignores BasedOnSchemas, SchemaPurposes, ComponentTypes, TemplateTypeIds, LockFilter and NotBasedOnSchema.

For example, consider the following code sample:
OrganizationalItemItemsFilter filter = new OrganizationalItemItemsFilter(Session)
  {
    SchemaPurposes = new[] { SchemaPurpose.Component },
    ItemTypes = new[] { ItemType.Schema },
    Recursive = true
  };
var componentSchemas = Publication.RootFolder.GetListItems(filter);

The call to GetListItems should apply all parameters and return only Schemas with a Component Purpose in the given Publication's root folder and subfolders. However, because of this issue, GetListItems instead only applies the Recursive and ItemTypes parameters, not the SchemaPurposes parameter, and returns all Schemas, regardless of Purpose, in the Publication's folder tree.

This issue affects TOM.NET and the Core Service alike.