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

Extreme poor performance of "Form Submissions Cleanup" Schedule Job

$
0
0

EPiServer Forms: 4.25.0
EPiserver CMS: 11.12.0

For us, 'Form Submissions Cleanup' job takes 45 mins and more 

Consumes 45% of DTU. Wondering is it same for any of you also? 

(Investigations are in progress)

Best Regards
Khurram


Display SelectMany-items in PropertyList:s with SelectItem:s Text-part when multiple items selected

$
0
0

When having a PropertyList with Selection Factories, like this.

[PropertyDefinitionTypePlugIn]
public class FooBarSettingsPropertyList : PropertyList<FooBarSettings>
{
}
public class FooBarSettings
{
    [SelectOne(SelectionFactoryType = typeof(FooSelectionFactory))]
    public virtual string FooSelection { get; set; }
    [SelectMany(SelectionFactoryType = typeof(BarSelectionFactory))]
    public virtual string BarSelection { get; set; }
}

We have an ok presentation of FooSelection and BarSelection when selecting only one item, the Text part of SelectItem is presented.

However, when we select many Bar:s, so that there is the ID(a string in GUID-format) comma-separated stored in DB, we are seeing the comma-separated string of GUID:s, not the comma-separated presentation of Text-parts of the SelectionFactory.

Expected output would be something like Kaka, Baka, Smaka, Foo, Bar or something.

I don't think we should be expected to implement Dojo/Dijit stuff to fix this, maybe it should work using string[] or List<string>, or some extra UIHint, or it should simply just work out-of-the-box.

An attempt was made to access a socket in a way forbidden by its access permissions

$
0
0

I followed the steps for installing EPiserver commerce given in the website but i am facing i sortouted with many couldnt find whats wrong in that i have done many times like trying to install it like 6 times even though everytime i am facing the same issue

Web Socket connection problem. Real-time connection could not be establish with this server.

$
0
0

Trying to set up an episerver on production servers.    Getting this error through out the admin.    I have Episerver 11.14.1.0.

Real-time Updates
A real-time connection could not be established with the server. This may be caused by incorrect configuration. Please see the User interface section in the user guide for further information.

In chrome, I am seeing:

widgets.js:2 WebSocket connection to 'wss://blue.mydomain.com/EPiServer/Shell/socket/endpoint/' failed: Error during WebSocket handshake: Unexpected response code: 200

I've had this problem before and it's been fixed by enabling Web Socket Protocol in features.    However it's still doing that here.   I'm confirmed the install of Web Socket Protocol.   Wondering if the firewall is blocking this if a port needs to be enabled.    Not sure what's going on here.

Commerce: Ability to display custom Variant property in a Product's Variant listing

$
0
0

Hi,

Our customer work with Products and Variants that are imported from an ERP (D365). They are used to work with their own Item Number, which is their unique ID for variants. That is also displayed to the customers online, but is different than the Episerver Code.

It would be very usefull if we could customize the Product's Variant listing view in Episerver Commerce Catalogue to display columns based on custom properties, such as the Item Number in this case. We can also think of other custom properties that help identifying a unique Variant, such as size and color.

Thanks.

Eric

Ignoring container pages in URL

$
0
0

The site I am currently working on has hundreds of pages beneath the start page. This slows everything down so we decided to group the pages inside of a few container pages instead. Site is now faster, but we would like to keep the URLs of the pages, by ignoring the container pages URL segment in the URL. We would like http://site.com/container1/page1  to be http://site.com/page1. And also for all subpages http://site.com/container1/page1/subpage2/subpage3 to be http://site.com/page1/subpage2/subpage3.

How could this be done? Partial routing? 

EditorDescriptorRegistration not triggered

$
0
0

CMS 11

Hello! Ive got a plugin out there with an EditorDescriptor, but it is not triggered in ONE implementation. What can it be?

yes there is other descriptors in solution with TargetType = typeof(XhtmlString) and they are triggered

 [EditorDescriptorRegistration(TargetType = typeof(XhtmlString), EditorDescriptorBehavior = EditorDescriptorBehavior.PlaceLast)]
public class XhtmlStringEditorDescriptor : EditorDescriptor
{
        public override void ModifyMetadata(EPiServer.Shell.ObjectEditing.ExtendedMetadata metadata,
            IEnumerable<Attribute> attributes)
        {
            //no breakpoint triggered here
            if (metadata.EditorConfiguration["settings"] is Dictionary<string, object> settings)
            {
               //some code here but gets never hit
            }            
        }
}

Episerver Cms and Content Security Policy Header

$
0
0

This is not as much of a bug, but rather a question of why.
When adding a CSP to my Episerver Site, i can configure everything to work safly and securly on the front end.
But the second one tries to load /episerver/cms everything breaks cause the csp blocks dojo.js attempts to run a eval() function aswell as the inline scripts that is put into edit mode.

My question is this:
Are there any plans to fix this as far as we are aware of? Cause running episerver with a csp that has to include both 'unsafe-inline' and 'unsafe-eval' feels rather bad.

Best Regards
Pål-j


Unable to launch Episerver Commerce after fresh installation

$
0
0

Hi,

I successfully installed Episerver Commerce by following the steps provided in Episerver World website. When I try to launch Episerver CMS, I get Socket Exception "An attempt was made to access a socket in a way forbidden by its access permissions". Am I missing any special permission for folder where the Episerver Commerce solution is residing? Kindly, help me to resolve this issue, let me know if more details required. Please find below the complete stack trace of the exception. 

 

[SocketException (0x271d): An attempt was made to access a socket in a way forbidden by its access permissions]
   System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) +375
   System.Net.Sockets.Socket.Bind(EndPoint localEP) +283
   Microsoft.ServiceModel.Samples.UdpChannelListener.CreateListenSocket(IPAddress ipAddress, Int32 port) +162
   Microsoft.ServiceModel.Samples.UdpChannelListener.OnOpen(TimeSpan timeout) +118
   System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +385
   System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout) +72
   System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +385
   System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout) +160
   EPiServer.ServiceModel.GenericWcfServiceHost`1.OnOpen(TimeSpan timeout) +88
   System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +385
   EPiServer.Events.Providers.WcfEventProvider.CreateEventServiceHost() +107
   EPiServer.Events.Providers.WcfEventProvider.InitializeServiceHost() +28
   EPiServer.Events.Providers.WcfEventProvider.<InitializeAsync>b__13_0() +24
   System.Threading.Tasks.Task.InnerInvoke() +74
   System.Threading.Tasks.Task.Execute() +48
[AggregateException: One or more errors occurred.]
   System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) +1131
   EPiServer.Events.EventsInitialization.InitializeEvents(ISiteSecretManager siteSecretManager, IEventSiteRegistry eventSiteRegistry, EventProviderService eventProviderService) +196
   EPiServer.Events.<>c__DisplayClass6_0.<Initialize>b__0() +90
   System.Threading.Tasks.Task.InnerInvoke() +74
   System.Threading.Tasks.Task.Execute() +48
[AggregateException: One or more errors occurred.]
   System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) +4247270
   System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) +12586309
   EPiServer.Events.<>c__DisplayClass6_0.<Initialize>b__1(Object sender, EventArgs args) +44
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
   System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) +168
   System.Delegate.DynamicInvokeImpl(Object[] args) +124
   EPiServer.Framework.Initialization.InitializationEngine.OnInitComplete() +195
   EPiServer.Framework.Initialization.InitializationEngine.ExecuteTransition(Boolean continueTransitions) +172
   EPiServer.Framework.Initialization.InitializationEngine.Initialize() +40
   EPiServer.Framework.Initialization.<>c.<FrameworkInitialization>b__7_0(InitializationEngine e) +9
   EPiServer.Framework.Initialization.InitializationModule.EngineExecute(HostType hostType, Action`1 engineAction) +353
   EPiServer.Framework.Initialization.InitializationModule.FrameworkInitialization(HostType hostType) +170
   EPiServer.Global..ctor() +44
   CommerceTraining.EPiServerApplication..ctor() +29
   ASP.global_asax..ctor() in c:\Users\home\AppData\Local\Temp\Temporary ASP.NET Files\vs\b608c16c\ba25aeab\App_global.asax.0.cs:0
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0
   System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +122
   System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +239
   System.Activator.CreateInstance(Type type, Boolean nonPublic) +85
   System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) +1173
   System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +130
   System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture) +21
   System.Web.HttpRuntime.CreateNonPublicInstance(Type type, Object[] args) +59
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +148
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +303
[HttpException (0x80004005): Exception has been thrown by the target of an invocation.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +659
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +89
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +189

Long filter expression results in Bad request from Episerver find

$
0
0

We have a search query in which we insert a rather long filter expression using the below method:

public static ITypeSearch<TSource> ExcludeEntryCodes<TSource>(this ITypeSearch<TSource> search, IEnumerable<string> codes) where TSource : IBaseEntry
        {
            if (codes != null && codes.Any())
            {
                var codeFilter = search.Client.BuildFilter<TSource>();
                foreach (var code in codes)
                {
                    codeFilter = codeFilter.And(x => !x.Code.Match(code));
                }
                return search.Filter(codeFilter);
            }
            return search;
        }

Our issue is that if the list of "codes" are to long (around 20), Episerver Find returns a bad request. Any ways of optimizing the request?

In the error message is seems that the request towards Find gets rather verbose. Something like:

{\"term\":{\"ParentCatalogNodes.ID$$number\":1073741948}},{\"and\":[{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"9391\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"9413\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"14018\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"10117\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"10230\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"10980\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"17609\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"9926\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"10074\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"13682\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"10808\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"10739\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"10038\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"14179\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"17467\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"9513\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"9554\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"9595\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"2358\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"2361\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"9961\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"9964\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"9967\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"3936\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"3951\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"1894\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"1902\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"9931\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"11744\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"6679\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"6711\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"6441\"}}}},{\"not\":{\"filter\":{\"term\":{\"Code$$string\":\"6746\"}

ICart.Modified

$
0
0

So... If I run

_orderRepository.Save(cart);

and then load the cart I cannot see that 

freshlyLoadedCart.Modified

is updated.

Am I missing something?

Help debugging what commerce content is shown on website and in Commerce Admin interface

$
0
0

Hi forum

We are importing our product catalog from InRiver PIM using a modified version of the adapter provided by PIM. But basically this adapter imports data into Episerver by importing a Catalog.xml file. We are using Episerver.Cms.UI: 10.4.0 and EPiServer.Commerce.UI.ManagerIntegration 10.2.2.

We are now trying to change some properties on a CatalogNode. We change the properties in the XML file and try to import the file. What I have found so far:

1) The /episerver -> Commerce -> Catalog interface (not Commerce Manager - don't know what the proper name for this interface is) is not updated.

2) Data is changed in the CatalogContentProperty database table, so we do receive the data from the XML file.

3) Our website is also changed, so the customers will see the changes.

I have then tried to change something in the Commerce catalog UI directly. That is both reflected in the UI, on the website and in the CatalogContentProperty table.

My first thought was that it is a versioning problem, but we have set this appsetting in web.config:

As far as I can see, we can't rely on the Commerce UI showing the correct data when we update or catalog by importing Catalog.xml files. Is that true?

Thank you for your help and insight.

Regards

Anders

EPiServer Find statistics DNT on track() and ajax controller

$
0
0

Hello,

We have article page where we are using EPiServer Find track() method to track the statistic detail for search phrase and we are using Ajax call in controller to pass search term and call EPiServer Find search functionality to fetch the results. When we change the browser setting to Do not track without adding the below code not to track either in main action method or ajax json method, it doesn't record that particular search phrase in statistics details and obeys DNT. 

string doNotTrackHeader = this.Request.Headers.Get("DNT");

if (doNotTrackHeader == null || doNotTrackHeader.Equals("0"))

{

 var search = search.track();

}

Please help us understand why is it respecting DNT without adding this code when it is ajax and required this code when it passes through main action method within MVC controller.

Don't render type attribute in Find script and other script elements you output from package binaries

$
0
0

When validating markup on a site with Episerver Find installed and script resources active this warning is given. Please fix so that you only render <script> as the starting element.

Warning: The type attribute is unnecessary for JavaScript resources.

From line 1195, column 1; to line 1195, column 31

</script><script type="text/javascript">if(Fi

Episerver Search & Navigation (Find) - UnifiedSearch: Option to disable FilterOnCurrentSite() during initialization

$
0
0

Relevant for multi-site scenarios, using Episerver Search & Navigation (Find), and using UnifiedSearch.

When using the SearchClient.Instance.UnifiedSearchFor(query) method, the results are filtered on the current site.
It is not possible to change this behavior using the .NET API.

The request is to make it possible to change it (during initialization).

Optimally it would be possible to do this per site during initialization, so e.g.
* The main site should include search results for itself and every sub site
* The sub sites should include search results only for the given sub site
But this can be handled by filtering the results on the given Start Page for the sub site, so it is priority B.

A method for changing the behavior is described her https://world.episerver.com/forum/developer-forum/EPiServer-Search/Thread-Container/2018/11/disable--filteroncurrentsite-for-unifiedsearch/ but it involves decompiling the S&N code and copying that, removeing the call to the extension method .FilterOnCurrentSite<T>().
It works, but is not a good solution maintenence-wise.


Inconsistent behavior when creating nested folders

$
0
0

Good afternoon,

Our clients have reported a few inconsistencies when creating nested folders which seems to be occurring only when application is running on multiple App Service instances. Please see more information regarding the issue in reproduction steps.

Reproduction information:

  • ensure that site is running on multiple App Service instances (otherwise issue does not seem to occur)
  • login to CMS
  • create a new folder with unique name for the current site
  • try creating a new folder under the one that has just been created - this now has two outcomes, none of which is expected:
    1. instead of new folder appearing with the name editor, the current folder gets the name editor active to change the current folder name. The new folder is created as well, with the "New folder" name.
    2. new folder appears with the name editor, however after finishing the entering of the name folder is still named "New folder". When this issue occurs, refreshing the page seems to update the folder names properly.

Installed EPiServer packages:

EPiServer.AddOns.Helpers 0.4.0.0
EPiServer.Azure 10.0.1
EPiServer.CMS 11.15.0
EPiServer.CMS.AspNet 11.15.0
EPiServer.CMS.Core 11.15.0
EPiServer.CMS.TinyMce 2.10.1
EPiServer.CMS.UI 11.24.0
EPiServer.CMS.UI.Core 11.24.0
EPiServer.CMS.UI.Sources 11.24.0
EPiServer.Forms 4.28.0
EPiServer.Forms.Core 4.28.0
EPiServer.Forms.UI 4.28.0
EPiServer.Framework 11.15.0
EPiServer.Framework.AspNet 11.15.0
EPiServer.Labs.LanguageManager 3.3.2
EPiServer.Logging.Log4Net 2.2.2
EPiServer.Packaging 3.4.0
EPiServer.Packaging.UI 3.4.0
EPiServer.Personalization.MaxMindGeolocation 1.0.0
EPiServer.ServiceLocation.StructureMap 2.0.3
EPiServer.XForms 1.0.3

Please let me know if you have any suggestions or any additional information is needed.

Best regards,
Nemanja.

State/Province dropdown

$
0
0

New to Episerver Forms, building a simple contact form.   Is there a way to build the state/province selection field without having to manually input the options for each state/province calue?    I see a field called Choices - but the only selection is Use Manual Input.    I have ISelectionFactories that I have built for some of the page/block properties but not sure if I can hook them up here.

Thanks,

Modifying tblContentProperty/tblWorkContentProperty Select List items

$
0
0

I have the need to modify (remove), select list items that are stored in the tblContentProperty/tblWorkContentProperty tables given certain criteria are met.  Trying not to do this directly via SQL.  Is there a way to access these select list items for a particular form if I supply the ID of the parent container of the form or the ID of the element itself?  I know I can use ISelectionFactory to build a form element (select list), but can I also use it to retrieve?

Thanks,

Tim

CommerceSettingsAdmins user could not access /episerver/commerce Url

$
0
0

I created a user and added the user to CommerceSettingsAdmins group. User can login to Epi server admin but when clicking the Commerce link, user is automtically redirected to the login page as if it was logged out. But if I access /episerver/commerce/settings directly, the said user can access it. I think I'm having problems with the Url access for CommerceSettingsAdmins but do not know which part to change. Please advise.

Index blocks in ContentAreas as individual entitys in index.

$
0
0

Hi, 

I use blocks as steps in a tutorial on a page. The steps reside in a contentarea and I want them to be indexed as individual index entries where SearchUrl is the page url + #step + placement order in the contentarea and SearchTitle is PageTitle + BlockTitle.

I have a solution where I find the page where the block is used when indexing the block and collect page url, placement order in contentarea and page title.

The problem with this solution is if a block is used on multiple pages. Then the block only gets indexed for one of those places.

Somebody got any idées?

Viewing all 6894 articles
Browse latest View live