﻿<?xml version="1.0" encoding="utf-8"?>
<rss
  version="2.0">
  <channel>
    <title>Episerver blog </title>
    <link>https://rasolo.net/blogs/episerver/feed/</link>
    <description />
    <language>en-us</language>
    <managingEditor>rasmusolofsson@protonmail.com</managingEditor>
    <lastBuildDate>Fri, 07 Apr 2023 14:08:41 Z</lastBuildDate>
    <item>
      <link>https://rasolo.net/blogs/episerver/episerver-log-in-error-fix/</link>
      <category>Episerver</category>
      <title>Episerver log in error fix</title>
      <description>I just installed an old Episerver site on my laptop and got the error "The Trust Relationship Between The Primary Domain And The Trusted Domain Failed" continuously when trying to log in. It did not matter whether I inputted a correct username and password or just random gibberish, the error would always appear. What solved it for me was to go to web.config file and go to system.web. I changed the default membership provider from "MultiplexingMembershipProvider" to "SqlServerMembershipProvider". From:
&lt;system.Web&gt;&lt;membership defaultProvider="MultiplexingMembershipProvider" userIsOnlineTimeWindow="10" hashAlgorithmType="HMACSHA512"&gt;&lt;providers&gt;&lt;clear /&gt;&lt;add name="MultiplexingMembershipProvider" type="EPiServer.Security.MultiplexingMembershipProvider, EPiServer.Framework" provider1="SqlServerMembershipProvider" provider2="WindowsMembershipProvider" /&gt;&lt;add name="WindowsMembershipProvider" type="EPiServer.Security.WindowsMembershipProvider, EPiServer" deletePrefix="BUILTIN\" searchByEmail="true" /&gt;&lt;add name="SqlServerMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="EPiServerDB" requiresQuestionAndAnswer="false" applicationName="EPiServerSample" requiresUniqueEmail="true" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" /&gt;&lt;/providers&gt;&lt;/membership&gt;
 
To:
&lt;system.Web&gt;&lt;membership defaultProvider="SqlServerMembershipProvider" userIsOnlineTimeWindow="10" hashAlgorithmType="HMACSHA512"&gt;&lt;providers&gt;&lt;clear /&gt;&lt;!--&lt;add name="MultiplexingMembershipProvider" type="EPiServer.Security.MultiplexingMembershipProvider, EPiServer.Framework" provider1="SqlServerMembershipProvider" provider2="WindowsMembershipProvider" /&gt;--&gt;&lt;add name="WindowsMembershipProvider" type="EPiServer.Security.WindowsMembershipProvider, EPiServer" deletePrefix="BUILTIN\" searchByEmail="true" /&gt;&lt;add name="SqlServerMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="EPiServerDB" requiresQuestionAndAnswer="false" applicationName="EPiServerSample" requiresUniqueEmail="true" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" /&gt;&lt;/providers&gt;&lt;/membership&gt;
 
Something about active directory maybe? Not sure.</description>
      <pubDate>Sat, 19 Oct 2019 16:09:42 Z</pubDate>
      <author>rasmusolofsson@protonmail.com</author>
    </item>
    <item>
      <link>https://rasolo.net/blogs/episerver/episerver-11-upgrade-error-solution/</link>
      <category>Episerver</category>
      <title>Episerver 11 upgrade error solution</title>
      <description>Many people including me have gotten frustrating dll errors when upgrading Episerver to 11.12.0. It works locally but on the deployment server it breaks. I spent a whole week trying to solve this problem. Eventually what solved it for me was to branch out the main develop branch to a new branch called develop-2, based on an older working version of develop. In develop-2 I cherry picked every commit from develop up to the upgrade to see where it broke. Then we reset develop to the older working version and merged in develop-2 to develop (excluding the breaking commits). The breaking stuff was solved later, separately.The packages that screwed things up were IdentityModel and NewtonSoft.json.</description>
      <pubDate>Mon, 21 Oct 2019 16:09:40 Z</pubDate>
      <author>rasmusolofsson@protonmail.com</author>
    </item>
    <item>
      <link>https://rasolo.net/blogs/episerver/solve-403-forbidden/</link>
      <category>Episerver</category>
      <title>How to solve HTTP Error 403.14 - Forbidden in Episerver when setting up project</title>
      <description>When setting up a new Epi site locally you might encounter the error "HTTP Error 403.14 - Forbidden". The solution for this in my case was to go to the Admin page in Episerver -&gt; Manage websites and remove the existing hostnames from the database I had copied and replace the domain with my local domain for the website.</description>
      <pubDate>Wed, 07 Oct 2020 16:33:51 Z</pubDate>
      <author>rasmusolofsson@protonmail.com</author>
    </item>
    <item>
      <link>https://rasolo.net/blogs/episerver/publish-all-descendands/</link>
      <category>Episerver</category>
      <title>How to publish all descendants in Episerver/Optimizely 11</title>
      <description>There is no default built in functionality to mass publish pages that I could find, so I created a code solution for this:
 
   public void PublishDescendants(ContentReference parentContentReference)
{
    // Get necessary services
    var contentLoader = ServiceLocator.Current.GetInstance();
    var contentRepository = ServiceLocator.Current.GetInstance();
    // Get parent content
    var parentContent = contentLoader.Get(parentContentReference);
    // Create a writable clone of the parent content and publish it
    var clonedParentContent = parentContent.CreateWritableClone();
    contentRepository.Save(clonedParentContent, SaveAction.Publish, AccessLevel.Read);
    // Get all descendants of the parent content
    var descendantContentReferences = contentLoader.GetDescendents(parentContentReference);
    // Collect all descendants that are of type PageData in a list
    var descendantPageDataList = new List();
    foreach (var descendantContentReference in descendantContentReferences)
    {
        // Try to get the descendant content as PageData
        bool success = contentLoader.TryGet(descendantContentReference, out var descendantPageData);
        if (success)
        {
            // Add the descendant content to the list if it is of type PageData
            descendantPageDataList.Add(descendantPageData);
        }
    }
    // Publish all descendants 
    foreach (var descendantPageData in descendantPageDataList)
    {
        // Create a writable clone of the descendant content and publish it
        var clonedDescendantContent = descendantPageData.CreateWritableClone();
        contentRepository.Save(clonedDescendantContent, SaveAction.Publish, AccessLevel.Read);
    }
}

Call the method with the desired page id and all the pages below it, including itself, will be published:
    
var parent = new ContentReference(11758);
PublishDescendants(parent);
</description>
      <pubDate>Tue, 04 Apr 2023 08:29:31 Z</pubDate>
      <author>rasmusolofsson@protonmail.com</author>
    </item>
  </channel>
</rss>