Quantcast
Channel: Optimizely Search & Navigation
Viewing all 6894 articles
Browse latest View live

Using ReactJs.Net is DXP

$
0
0

This may not directly be related to Episerver and DXP but I will give it a try.

I'm currently working on a new Episerver application and have an idea of building some parts/components of the site with React Js. I've stumbled over the library ReactJs.NET and I really wanted to use this lib to be able to render components server side and easy pass models and translations from the backend to the react components. This has been working excellent locally on my computer.

The other day we got access to our DXP environments, unfortunately it seems like the ReactJs.Net library doesn't run at all in Azure. The problem as far as I know is related to the visual c++ redistributable 2015 package not being installed. There is a lot of different information about this, and it's hard to filter out what is actually correct.

Does anyone have any experience of working with ReactJs.Net in DXP / Azure?


Episerver in a multi-website scenario

$
0
0

Hi all!

I have a question regarding the behavior of Episerver in a multi-website scenario.

Imagine we have episerver with a single website, say company.com. The whole page tree is part of this single website, obviously. We have a start page setup, but the whole page tree is NOT a descendant of this start page. (this might be a crucial thing...). Now we have a new requirement: We need to have a subdomain, say subdomain.company.com, and point it to a subset of the page tree in the same episerver instance. Ideally, they should be fully independent. Ideally.

To do so, we can create a new website in Episerver, with subdomain.company.com, and set it up so that it points to the start page of this new subtree we have created for the new website. The subtree is not a descendant of the original start page for the main website, so we have no issues there. So we had "company.com", being able to access the whole page tree, and now we have also subdomain.company.com, pointing to the subtree.

Say we had a page called "dummy" in a different branch of the page tree where the main start page is. We can access to that page with this URL: "company.com/dummy". What should happen when we try to access to this URL?  "subdomain.company.com/dummy"

In my opinion, I should get a 404, or if any, be redirected to "company.com/dummy". But instead, I can see the dummy page, with the URL "subdomain.company.com/dummy".

And we don't want that. We want "subdomain.company.com" page tree to be fully isolated.

Can it be done? Thanks in advance :)

Find wont index SearchHitUrl for block on publish

$
0
0

Hi,

I´m indexing some block´s with SearchHitUrl-property set. This work great when indexing using "EPiServer Find Content Indexing Job" but when publishing an existing block all my Unified search properties disappear from the index.

Dose Find not use the same engine for indexing on publish and with EPiServer Find Content Indexing Job"?

Index before publish:

"SearchHitUrl$$string": "http://localhost:99/sv/Sjalvservice/jesper/palsternacka/#steg=1"

Index after publish:

""

/Jesper

Remove New line character from XHTMLString response

$
0
0

I am using Content Delivery API that works fine. For some reason there is a need to remove the new line characters from the xhtml string response.

Based on this article  https://world.episerver.com/documentation/developer-guides/content-delivery-api/serialization/ I tried to remove the new line character but I still see it in response.

What am I missing. Here is what I have

[ServiceConfiguration(typeof(IPropertyModelConverter), Lifecycle = ServiceInstanceScope.Singleton)]
public class CustomXhtmlStringUpdate : DefaultPropertyModelConverter
{
public CustomXhtmlStringUpdate() => ModelTypes = new List<TypeModel>
{
new TypeModel
{
ModelType = typeof(CustomHtmlStringPropertyModel), ModelTypeString = nameof(CustomHtmlStringPropertyModel), PropertyType = typeof(PropertyXhtmlString)
}
};
}

public class CustomHtmlStringPropertyModel : PropertyModel<string, PropertyXhtmlString>
{
public CustomHtmlStringPropertyModel(PropertyXhtmlString propertyXhtmlString) : base(propertyXhtmlString)
{
if (propertyXhtmlString != null)
{
Value = propertyXhtmlString.ToString().Replace(Environment.NewLine, "");
}
}
}

Unable to fetch the indexed extra property on Find

$
0
0

Hi,

Using Episerver Foundation, I included an extra property on the GenericProduct type:

SearchClient.Instance.Conventions.ForInstancesOf<GenericProduct>().IncludeField(x => x.VariationsLink());

I can see the data being indexed as well on find, but the issue is that I dont see this property in the search results object. I am searching using the base class:

_findClient.Search<EntryContentBase>();

But the object doesnt seem to have this property (VariationsLink).

What can I do to fetch the included field (VariationsLink) from the index via Find.

Many broadcasted custom events Missed in DXC

$
0
0

Hey,

We are attempting to broadcasting an event using the IEventRegistry. From what i can see in our logs, there are alot of events being "Missed". Is there any way to see the reason for them being missed?

We are hosting in DXC, so i guess the event registry is broadcasting via the service bus, and that the missed event is some kind of deadletter management. Anyone has any insight as to how the Missed event works for the EventRegistry when hosting in Azure?

The background is that, we have a donutcache implementation and we would like to output cache content for a long time, but if the broadcasted events are regularly failing, it's seems very shaky to rely on content events to invalidate the cache. Or could the missed events be some kind of false positives thats could be disregarded?

The failures are not evenly distributed over all instance, but almost difference about +- 100 failures in about 1000 events. The successful messages are evenly distributed over all instances.

We are using Episerver.Framework version 11.13.1

This is the code:

using EPiServer.Core;
using EPiServer.Events.Clients;
using EPiServer.Framework;
using EPiServer.Framework.Initialization;
using EPiServer.ServiceLocation;
using MediatR;
using System;
using System.Threading;

[InitializableModule]
public class ContentEventsInitialization : IInitializableModule
{
    private static readonly Guid _contentEventId = new Guid("F7DD50E3-B504-4384-90DD-B23474E7EB51");
    private static readonly Guid _raiserId = new Guid("B33B5CE0-8A83-434C-902B-AFBCE0FB0557");
    private static bool _hasInitialized;

    private Injected<IContentEvents> ContentEvents { get; set; }

    private Injected<IEventRegistry> EventRegistry { get; set; }

    private Injected<ILogger> Logger { get; set; }

    public void Initialize(InitializationEngine context)
    {
        if (_hasInitialized)
        {
            return;
        }

        ContentEvents.Service.PublishedContent += ContentEvents_PublishedContent;

        var customContentEvent = EventRegistry.Service.Get(_contentEventId);
        customContentEvent.Raised += CustomContentEvent_Raised;
        customContentEvent.Missed += CustomContentEvent_Missed;

        _hasInitialized = true;
    }

    private void CustomContentEvent_Raised(object sender, Events.EventNotificationEventArgs e)
    {
        try
        {
            if (!ContentReference.TryParse((string)e.Param, out ContentReference contentReference))
            {
                Logger.Service.Fatal($"CustomContentEvent_Raised: failed to parse content reference", state: e.Param);
            }

            Logger.Service.Info($"CustomContentEvent_Raised: success");
        }
        catch (Exception ex)
        {
            Logger.Service.Fatal($"CustomContentEvent_Raised: Failed to execute event handler", ex);
        }
    }

    private void CustomContentEvent_Missed(object sender, EventArgs e)
    {
        Logger.Service.Error($"CustomContentEvent_Missed: Content event propagation failed, trigger FailedContentNotification");
    }

    public void Uninitialize(InitializationEngine context)
    {
        ContentEvents.Service.PublishedContent -= ContentEvents_PublishedContent;

        var customContentEvent = EventRegistry.Service.Get(_contentEventId);
        customContentEvent.Raised -= CustomContentEvent_Raised;
        customContentEvent.Missed -= CustomContentEvent_Missed;
    }

    private void ContentEvents_PublishedContent(object sender, ContentEventArgs e)
    {
        try
        {
            EventRegistry.Service
                .Get(_contentEventId)
                .Raise(_raiserId, e.ContentLink.ToString(), EventRaiseOption.RaiseBroadcast);
        }
        catch (Exception ex)
        {
            Logger.Service.Error($"Failed to raise publishedcontent event for ContentLinkID: {e.ContentLink.ID}", ex);
        }
    }
}

Failed event distribution over 24h period on 1 instance:

Successful event distribution over 24h period on same instance as fails above: 

Anyone have any insights to this issue? The missed rate seems to be very high doesn't it?

Validate duplicate content on Blocks

$
0
0

I have a block (VideoBlock) that has a string type named Video (represents video id). I had to prevent users from creating more than one video block with same video id and used below code in Save event. 

if (args.Content is VideoBlock videoBlock)
{
var videoList = _client.Search<VideoBlock>()
.Filter(x => x.Video.Match(videoBlock.Video))
.GetContentResult();

if (videoList.TotalMatching == 0) { return; }
if (videoList.TotalMatching == 1)
{
if (((IContent)videoList.First()).ContentLink.CompareToIgnoreWorkID(((IContent)videoBlock).ContentLink))
{
return;
}
}

args.CancelAction = true;
args.CancelReason = "Video Block already exists";

}

This was working all fine till recently. Now when user tries to create a video block and puts existing Video id, the screen freezes and I don't see anything in the logs. I tried to copy paste an existing block and found below error:

Failed to copy page 'Test Video' to 'Videos'.:Exception: The remote server returned an error: (400) Bad Request. SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures.

Dijt FilteringSelect and EpiServer rest store issues

$
0
0

I have put together a widget which essentialy will allow users to select documents from external system and save links to them.

I have used a dijit FilteringSelect to achieve this together with Epi RestStore but I stumbled upon couple of issues.

  1. when there is value already set for the widget, (guid in my example), when dijit is making call to the RestStore, the call is like this: /modules/app/Stores/myreststore/a34f3fd8-8b9b-457f-9cde-56d8b886ff5b, and the value is not binded properly - the id is part of the path, and reststore controller treats it like null so I can't resolve the exact item for the store
  2. when I select value from the drop-down, it fails store the value with following error in console:
    Uncaught TypeError: Cannot read property 'toString' of undefined
        at Object._announceOption (widgets.js:2)
        at Object._selectOption (widgets.js:2)
        at Object.<anonymous> (dojo.js:15)
        at Object.advice (dojo.js:15)
        at Object._264 [as onChange] (dojo.js:15)
        at Object.onClick (widgets.js:2)
        at Object.<anonymous> (widgets.js:2)
        at dojo.js:15
        at Object.<anonymous> (widgets.js:2)
        at dojo.js:15

Model that I return from rest store:

    internal class Document
    {
        public Guid Id { get; set; }
        public string Title { get; set; }
        public string Author { get; set; }
        public DateTime ModificationDate { get; set; }
    }

Get method for the rest controller:

public RestResult Get(string query)
        {
            var results = Enumerable.Empty<Document>();
            if (string.IsNullOrEmpty(query) || query == "*")
            {
                results = documents;
            }
            else
            {
                query = query.Replace("*", String.Empty).ToLowerInvariant();
                if (Guid.TryParse(query, out var docId))
                {
                    results = documents.Where(doc => doc.Id == docId);
                }
                else
                {
                    results = documents.Where(doc =>
                            doc.Author.ToLowerInvariant().Contains(query) ||                            
                            doc.Title.ToLowerInvariant().Contains(query))
                        .Take(10);
                }
            }
            return Rest(results);
        }

Any help highly appreciated.


EPiServer/cms/Stores/notification/ status 500 error on closing notification-bell panel

$
0
0

I get the below error on closing the notifications panel. Episerver CMS 11.14.0.0.

Oddly the retrieval of the notifications works fine, and it's method also gets passed a user. How can I troubleshoot this? 

System.ArgumentNullException: Value cannot be null.
Parameter name: user
at EPiServer.Notification.Internal.DefaultNotifier.<MarkUserNotificationsAsReadAsync>d__47.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at EPiServer.Notification.Internal.DefaultNotifier.<MarkUserNotificationsAsReadAsync>d__46.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at EPiServer.Cms.Shell.UI.Rest.Notifications.NotificationService.<MarkAllAsReadAsync>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at EPiServer.Cms.Shell.UI.Rest.Notifications.NotificationStore.<MarkAllAsRead>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass8_0.<BeginInvokeAsynchronousActionMethod>b__1(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__11_0()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass11_1.<InvokeActionMethodFilterAsynchronouslyRecursive>b__2()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass11_1.<InvokeActionMethodFilterAsynchronouslyRecursive>b__2()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_6.<BeginInvokeAction>b__3()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_1.<BeginInvokeAction>b__5(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)
at EPiServer.Shell.Services.Rest.RestControllerBase.EndExecute(IAsyncResult asyncResult)
at System.Web.HttpApplication.CallHandlerExecutionStep.<>c__DisplayClass7_0.<InvokeEndHandler>b__0()
at System.Web.HttpApplication.CallHandlerExecutionStep.InvokeEndHandler(IAsyncResult ar)
at System.Web.HttpApplication.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar)

Google Analytics Addon - Sign in with Google temporarily disabled for this app

$
0
0

An editor completed the free eLearning courses (#comebackstronger) and wanted to try the Google Analytics Addon. I installed the EPiServer.GoogleAnalytics.2.3.1 nuget and had a look at this: https://world.episerver.com/add-ons/google-analytics-for-episerver/configuring-google-analytics-for-episerver/

In admin mode, I locate the Google Analytics settings, and on the tab «Configure Analytics Gadget» I click «Log in». When trying to log in with a Google account I get this message: «Sign in with Google temporarily disabled for this app. This app has not been verified yet by Google in order to use Google Sign In». What?

Is there anything I can do?

Also, another question. The site uses Google Tag Manager today. Do I need to add Google Analytics Tracking ID and Custom tracking script to the tab «Configure Tracking» or can I keep my current GTP script. I would prefer not to change this.

How to get demo licence for azure demo site?

$
0
0

Hi

I want to request a demo licence for a demo site hosted on azure. I am using this site to request a licence file:
https://license.episerver.com/public/GenerateDemoLicense.aspx

I use the IP address specified in the azure web app properties page.

But it is not working. The licence error popup is still visible with error "40.69.200.124 is not a valid ip-address".

As I understand the azure web app does not have one ip adress but it is using a list of possible IP addresses.

How can I request a licence for an azure demo site with a list of possible IP addresses?

Can't see embed code in editor

$
0
0

Hi!

After upgrade to update 304 we cant see the source code for embed and iframes that we published in the editor before the upgrade. The page can still show the iframe and embed content but its invisible in the editmode, when we hit the view source button in the editor the popup is blank. If we put new embed or iframe code in the editor it works, Then we can view the source in the editor and the embed code shows in the popup. 

Any clues on what's going on?

We are running: 

  • EPiServer.Forms.UI 4.27.0.0
  • EPiServer.UI 11.23.6.0
  • EPiServer 11.14.1.0
  • EPiServer.Cms.AspNet 11.14.1.0
  • EPiServer.XForms 1.0.3.0
  • EPiServer.LinkAnalyzer 11.14.1.0
  • EPiServer.Cms.Shell.UI 11.23.6.0
  • EPiServer.Search.Cms 9.0.3.0

Best regards

Kristian

Stored procedure maxes out DTU in Azure

$
0
0

We're having the same issue as Johan describes in the following post: https://world.episerver.com/forum/developer-forum/-Episerver-75-CMS/Thread-Container/2017/5/what-function-is-making-this-sql-call/DTU maxes out and the query seems to be running for about five hours (in production). The query stands for about 95% of our CPU load. We've added the index, marked as a solution in above post, but without success. I've talked with other developers that are experiencing the same issues with their customers so it doesn't seem isolated to our solution. We're running the latest EPiServer version with Find.

Also, the following post suggests deactivation of "Clear Thumbnail Properties" Schedule Job. But we don't even have it active. 
https://world.episerver.com/forum/developer-forum/-Episerver-75-CMS/Thread-Container/2019/7/extreme-poor-performance-of-clear-thumbnail-properties-schedule-job/

Any suggestions on where to take this further?

Regards,
Michael

Implementing IPropertyModelConverter for EpiServer ContentDelivery API

$
0
0

Hello team,

Can someone help me with below issue?

I have a content delivery API and in response I have a field (for one of my pages) ContentReference for Images. I need to add some extension to the Image URL that comes back in JSON response (http:\\xyz.com..\..image.jpg to http:\\xyz.com..\..image.jpg?v=xxxx&height=&width)

I am trying to implement CustomPropertyModelConverter but am stuck on how to identify if the content reference is an image and how to update the ModelType.

Also am not sure if this is the correct way to do it? Can someone provide an example on how can I achieve this.  

Display ContentGuid

$
0
0

Hi,

I would like to show contentguid field along with other fields (ID, Name, Languages and Visible to) on blocktype editorial screen.

When i import and export the contents from one environment to another environment, the content ID has changed but content guid remains same across both the environments. 

Could someone please guide me to know if there is anyway contentguid can be added on the editorial screen along with other fields ? is there any specific reason for having content ID same and guid different during import and export from one to another environment  ?

Thanks & Regards,

Suresh


why does episerver CMS not support versioning out of the box?

$
0
0

Our organisation manges about 10 sites with at least 1000 pages each site, and tens of millions of page impresssions per month.

There are large teams dedicated to content.

As a member of one of those teams, I am very dissapointed that EPiServer has no versioning capability. If someone breaks a page, or we want to go pack to a previously published page, we cant.

Googling this, there is one "solution" which is to add a versioning gadget. However, we dont have this gadget. Our dashboard is, and has been for the last 3 years, blank.  This blank dashboard is a constant source of annoyance as we see it may be 100 times a day, and always have to switch to edit mode.  As editing under DXC is slow, we have to wait for this blank dashboard for man weeks a year if we combine our teams. It should of course start in the cms edit mode.

Anyway, under "add gadget" in the dashboard, we only see "notes""external links""rss reader". None of us use any of these of course, and we have no idea who would use these nor what for.

It has been mentioned that you can add gadgets to other pages, but we have never found this feature. There is certainly no way to add gadgets to the editor pages.

We asked the developers about versioning, and they its not something they can offer.

Versioning, and ability to rollback published pages, is such a crtical feature to a CMS system, EPiSever should make it standard.

Make LinkItem a valid property type

$
0
0

LinkItemCollection is great but if you only want one link it would be nice to be able to create a LinkItem property.

Limit editor access to customers and orders based on market

$
0
0

In the commerce manager there is no limit for which customers or orders the editors can edit.

It would we nice if there was a restriction so they can only see and edit customers and order for their market.

Execution timeout when detaching MetaField from CatalogEntry

$
0
0

Hi all,

I am trying to detach (uncheck) meta field from a Variant in Episerver Commerce Manager.

1) With local SQL Server and catalog with some 40k entries it works without any problems.

2) In Azure against SQL in Elastic Poll (200 DTU) it fails with "[SqlException (0x80131904): Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.]" That catalog has approx 120k entries.

I have tried to extend connection timeout, but that has no effect. The execution pumps up DTUs to 100% and then fails.

I have tried with 300 DTU, and then with 800 DTU. Same error after some 30 seconds.

Does this problem ring any bells for any of you guys. Why is this save of the meta class ramping up DB so high? Also the period when I get Execution Timeout looks like another timeout setting somewhere, that I did not find. But still, it wouldn't be of many help as this is how resources go, increase after increase of DTU.

Consumed DTU as we kept increasing it.

Increasing DTU in Elastic Pool and tries to save VAriant


No matter is it 200, 300 or 800 DTU database maxes to 100% and then execution timeout happens.

Tries to do save with 200, 300 and 800 DTU go to 100%

Version of Commerce is 13.16.0

[SqlException (0x80131904): Execution Timeout Expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +3306108
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +736
   System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) +4061
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted) +496
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) +3303
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) +667
   System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) +535
   System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +380
   EPiServer.Data.Providers.SqlTransientErrorsRetryPolicy.Execute(Func`1 method) +699
   Mediachase.Data.Provider.SqlDataProvider.ExecuteNonExec(DataCommand command) +416
   Mediachase.MetaDataPlus.Common.DBHelper.ExecuteNonQuery(String connectionString, CommandType commandType, String commandText, Int32 commandTimeout, DataParameter[] commandParameters) +236
   Mediachase.MetaDataPlus.Configurator.StoredProcedure.ExecuteNonQuery(MetaDataContext context) +54
   Mediachase.MetaDataPlus.Configurator.MetaClass.DoDeleteField(MetaField metaField) +133
   Mediachase.Commerce.Manager.Core.MetaData.Admin.MetaClassesControl.UpdateAttributes(MetaClass mc) +763
   Mediachase.Commerce.Manager.Core.MetaData.Admin.MetaClassesControl.SaveButton_Click(Object sender, EventArgs e) +117
   Mediachase.Commerce.Manager.Core.SaveControl.OnSaveChanges(Object sender, EventArgs e) +64
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +11760128
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +150
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5028

[Upgrade v9 to v11] Could not load type 'EPiServer.Web.Routing.UrlResolver' from assembly 'EPiServer, Version=11.14.2.0

$
0
0

Hi, I've been trying to upgrade EPiServer CMS system from 9.* to 11 on an ASP.NET MVC site for a couple of days with seemingly neverending issues like the following:

I've tried adding the following to system.webServer / modules in Web.config without any difference.

<add name="UrlResolver" type="EPiServer.Web.Routing.UrlResolver, EPiServer.Cms.AspNet" preCondition="managedHandler" />

The libraries and their versions in the web project are as follows:

<package id="Antlr" version="3.5.0.2" targetFramework="net461" /><package id="AutoMapper" version="4.2.1" targetFramework="net461" /><package id="Castle.Core" version="4.2.1" targetFramework="net461" /><package id="Castle.Windsor" version="4.1.0" targetFramework="net461" /><package id="DotNetZip" version="1.9.8" targetFramework="net461" /><package id="elmah.corelibrary" version="1.2.2" targetFramework="net461" /><package id="Elmah.Mvc" version="2.1.2" targetFramework="net461" /><package id="EntityFramework" version="6.1.3" targetFramework="net461" /><package id="EPiServer.Azure" version="9.4.0" targetFramework="net461" /><package id="EPiServer.CMS" version="11.14.2" targetFramework="net461" /><package id="EPiServer.CMS.AspNet" version="11.14.2" targetFramework="net461" /><package id="EPiServer.CMS.Core" version="11.14.2" targetFramework="net461" /><package id="EPiServer.CMS.TinyMce" version="1.0.0" targetFramework="net461" /><package id="EPiServer.CMS.UI" version="11.23.8" targetFramework="net461" /><package id="EPiServer.CMS.UI.Core" version="11.23.8" targetFramework="net461" /><package id="EPiServer.Framework" version="11.14.2" targetFramework="net461" /><package id="EPiServer.Framework.AspNet" version="11.14.2" targetFramework="net461" /><package id="EPiServer.Logging.Log4Net" version="2.2.0" targetFramework="net461" /><package id="EPiServer.Packaging" version="3.4.0" targetFramework="net461" /><package id="EPiServer.Packaging.UI" version="3.3.0" targetFramework="net461" /><package id="EPiServer.ServiceLocation.StructureMap" version="1.0.0" targetFramework="net461" /><package id="EPiServer.XForms" version="1.0.3" targetFramework="net461" /><package id="Geta.Tags" version="4.0.12" targetFramework="net461" /><package id="ImageResizer" version="4.0.5" targetFramework="net461" /><package id="ImageResizer.Mvc" version="4.0.5" targetFramework="net461" /><package id="ImageResizer.MvcWebConfig" version="4.0.5" targetFramework="net461" /><package id="ImageResizer.Plugins.DiskCache" version="4.0.5" targetFramework="net461" /><package id="ImageResizer.Plugins.EPiServerBlobReader" version="4.0.2" targetFramework="net461" /><package id="ImageResizer.WebConfig" version="4.0.5" targetFramework="net461" /><package id="log4net" version="2.0.8" targetFramework="net461" /><package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net461" /><package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net461" /><package id="Microsoft.AspNet.Providers.Core" version="2.0.0" targetFramework="net461" /><package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net461" /><package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net461" /><package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net461" /><package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net461" /><package id="Microsoft.Azure.KeyVault.Core" version="1.0.0" targetFramework="net461" /><package id="Microsoft.Data.Edm" version="5.8.2" targetFramework="net461" /><package id="Microsoft.Data.OData" version="5.8.2" targetFramework="net461" /><package id="Microsoft.Data.Services.Client" version="5.8.2" targetFramework="net461" /><package id="Microsoft.IdentityModel.Protocol.Extensions" version="1.0.0" targetFramework="net461" /><package id="Microsoft.Owin" version="3.0.1" targetFramework="net461" /><package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net461" /><package id="Microsoft.Tpl.Dataflow" version="4.5.24" targetFramework="net461" /><package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net461" /><package id="Microsoft.Web.Xdt" version="2.1.1" targetFramework="net461" /><package id="Microsoft.WindowsAzure.ConfigurationManager" version="3.2.1" targetFramework="net461" /><package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" /><package id="NSass.Core" version="0.0.3.0" targetFramework="net461" /><package id="NSass.Handler" version="0.0.3.0" targetFramework="net461" /><package id="NSass.Optimization" version="0.0.1.0" targetFramework="net461" /><package id="NuGet.Core" version="2.5.0" targetFramework="net461" /><package id="OctoPack" version="3.0.53" targetFramework="net461" developmentDependency="true" /><package id="Owin" version="1.0" targetFramework="net461" /><package id="PagedList" version="1.17.0.0" targetFramework="net461" /><package id="PagedList.Mvc" version="4.5.0.0" targetFramework="net461" /><package id="Pta.Build.WebEssentialsBundleTask" version="1.0.2" targetFramework="net461" /><package id="Sendgrid" version="6.3.4" targetFramework="net461" /><package id="SendGrid.SmtpApi" version="1.3.1" targetFramework="net461" /><package id="structuremap" version="3.1.6.186" targetFramework="net461" /><package id="structuremap.web-signed" version="3.1.6.191" targetFramework="net461" /><package id="structuremap-signed" version="3.1.9.463" targetFramework="net461" /><package id="System.ComponentModel.Annotations" version="4.4.0" targetFramework="net461" /><package id="System.ComponentModel.EventBasedAsync" version="4.0.11" targetFramework="net461" /><package id="System.Data.SqlClient" version="4.4.0" targetFramework="net461" /><package id="System.Dynamic.Runtime" version="4.0.0" targetFramework="net461" /><package id="System.IdentityModel.Tokens.Jwt" version="4.0.0" targetFramework="net461" /><package id="System.Linq.Queryable" version="4.0.0" targetFramework="net461" /><package id="System.Net.Requests" version="4.0.11" targetFramework="net461" /><package id="System.Reflection.Emit" version="4.3.0" targetFramework="net461" /><package id="System.Security.AccessControl" version="4.4.0" targetFramework="net461" /><package id="System.Security.Cryptography.Xml" version="4.4.2" targetFramework="net461" /><package id="System.Security.Permissions" version="4.4.0" targetFramework="net461" /><package id="System.Security.Principal.Windows" version="4.4.0" targetFramework="net461" /><package id="System.Spatial" version="5.8.2" targetFramework="net461" /><package id="System.Threading.AccessControl" version="4.4.0" targetFramework="net461" /><package id="System.ValueTuple" version="4.5.0" targetFramework="net461" /><package id="WebGrease" version="1.6.0" targetFramework="net461" /><package id="WindowsAzure.ServiceBus" version="4.1.3" targetFramework="net461" /><package id="WindowsAzure.Storage" version="8.5.0" targetFramework="net461" />

The web.config also has binding redirects as follows:

<dependentAssembly><assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.Framework" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-11.14.2.0" newVersion="11.14.2.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.Cms.Shell.UI" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-11.23.8.0" newVersion="11.23.8.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.Configuration" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-9.7.1.0" newVersion="9.7.1.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.Shell" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-11.23.8.0" newVersion="11.23.8.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-11.14.2.0" newVersion="11.14.2.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.data" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-11.14.2.0" newVersion="11.14.2.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.Enterprise" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-11.14.2.0" newVersion="11.14.2.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.UI" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-11.23.8.0" newVersion="11.23.8.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.Cms.AspNet" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-11.14.2.0" newVersion="11.14.2.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.XForms" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-1.0.3.0" newVersion="1.0.3.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.XForms" publicKeyToken="8fe83dea738b45b7" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-1.0.3.0" newVersion="1.0.3.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="EPiServer.Framework.AspNet" publicKeyToken="8fe83dea738b45b7" /><bindingRedirect oldVersion="0.0.0.0-11.14.2.0" newVersion="11.14.2.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.Events" publicKeyToken="8fe83dea738b45b7" /><bindingRedirect oldVersion="0.0.0.0-11.14.2.0" newVersion="11.14.2.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.Web.WebControls" publicKeyToken="8fe83dea738b45b7" /><bindingRedirect oldVersion="0.0.0.0-11.14.2.0" newVersion="11.14.2.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.ImageLibrary" publicKeyToken="8fe83dea738b45b7" /><bindingRedirect oldVersion="0.0.0.0-11.14.2.0" newVersion="11.14.2.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.ApplicationModules" publicKeyToken="8fe83dea738b45b7" /><bindingRedirect oldVersion="0.0.0.0-11.14.2.0" newVersion="11.14.2.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.Licensing" publicKeyToken="8fe83dea738b45b7" /><bindingRedirect oldVersion="0.0.0.0-11.14.2.0" newVersion="11.14.2.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" /><bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="StructureMap" publicKeyToken="e60ad81abae3c223" /><bindingRedirect oldVersion="0.0.0.0-3.1.9.463" newVersion="3.1.9.463" /></dependentAssembly><dependentAssembly><assemblyIdentity name="EPiServer.Configuration" publicKeyToken="8fe83dea738b45b7" /><bindingRedirect oldVersion="0.0.0.0-11.14.2.0" newVersion="11.14.2.0" /></dependentAssembly>

I can provide more configurations if requested but this post feels large enough already.

Regards, Niklas

Viewing all 6894 articles
Browse latest View live