EPiServer Archive

Changing NLog minLevel LogLevel at runtime in EPiServer

We moved from log4net to NLog in my current client’s EPiServer 8.5 website last year (see Using NLog with EPiServer and log4net for more information). Some time ago we received a request about being able to alter the log level at runtime, without editing configuration files on the servers. Reasonable enough; we already had read access to the generated logs, but no way of temporarily …

ImageVault Core unable to retrieve large files during load test

We did a series of load tests this morning on the client’s new public EPiServer website and found an issue with large files being supplied by ImageVault; that is, files large enough as not to be stored in the database but rather on the disk. Already at 5 concurrent requests to the same ImageVault resource, ImageVault Core starts producing IO Exceptions. Note that for single …

Encrypting connectionStrings for ImageVault Core

Encrypting sensitive information in configuration files seems rather obvious when working with web development. In my current project I got a chance to implement the use of ImageVault 4 in our EPiServer 8 website, and started looking into how I would go about encrypting the connectionStrings file. RSA encryption on ImageVault Core’s connectionStrings For a website’s connectionStrings you’d normally just have to run something like …

PowerShell script example for copying correct configs based on server machine name in multi server environment

As a complement to the previous article on Extending EPiServer MSBuild config transforms to provide server specific configuration for TCP EventReplication and Licenses I wrote a small Windows PowerShell script example on how you may copy the proper configuration files to the proper server automatically during deploy. This script is available at GitHub. Copying files with PowerShell based on environment computer name and regex The …

Extending EPiServer MSBuild config transforms to provide server specific configuration for TCP EventReplication and Licenses

I encountered an issue this week setting up the production environment for my current client, as it turned out that we would not be able to use EPiServer‘s UDP multicasting between our servers. Hence, we would have to configure the use of TCP for the EventReplication service; meaning different configuration files for each server. As we always strive to make our deploys as painless as …

ImageVault 4 MediaStreamService URL exposed on EPiServer 7.5 website

I ran into a small ImageVault 4 configuration error setting up a new testing environment for a client’s EPiServer 7.5 website the other day; all of our ImageVault pubished media URLs had stopped working. Or, actually they worked just fine as long as you tried accessing them from the server. In all of our old environments the image URLs rendered correctly as below: While on …

Database persisted translations with edit tools for language file resources in globalized EPiServer websites

A few years back I wrote a small tool allowing web administrators to update EPiServer CMS 6 R2 language files by themselves without the help of their website developers. There were of course a few downsides to this, such as updated deployment procedures as not to lose any new translations. I took a few hours and made a new one for EPiServer 7.5 that works …

Updated sitemap.xml generator functionality with bundle and batch support using sitemapindex

I updated the previous sitemap.xml generator functionality with new support for sitemapindex with batching and bundling of different types of sitemap URLs. My current client has the need to manually add sitemap.xml entries as a supplement to the generated ones through an administrator interface; hence the bundling functionality. Source code at GitHub.

Sitemap.xml generator engine for Multi language EPiServer 7.5 websites

A sitemap.xml file is a useful tool for helping search engines to find relevant pages on your website. This sitemap generator engine for EPiServer is based on loose strategies supporting globalized multilingual content; in other words, mysite.se/sitemap.xml and mysite.no/sitemap.xml will return swedish and norwegian URLs respectively. The strategy based pattern allows for easy custom additions of any kind to the xml file; for instance, apart …

Automatically give visitors proper focus area on ImageVault 4 images on your EPiServer 7.5 websites

In my current project there is a client need to handle massive amounts of photographs and images in a simple manner. To keep all of them in one well organized place we decided to go with the latest ImageVault solution from Meriworks AB. To meet certain client specific needs we extended the existing functionality with a custom tool in EPiServer‘s edit mode. People involved in …

Custom property Checkbox wrapper as Dynamic Property in EPiServer 7.5

We needed to add a checkbox as a dynamic property in my current client’s EPiServer 7.5 site last week. It’s not as straight forward as one might think due to the way that dynamic properties are handled. If you add a dynamic checkbox property through admin mode, together with a property decorated with the attribute in your code, everything will work fine up until …

Rewrite URL before ValidateInputIfRequiredByConfig throws ‘A potentially dangerous Request.Path value was detected from the client (&).’ exception

A client are on their way to migrate a large website from an old platform to a brand new EPiServer 7.5 site running on an IIS webserver. We created a small redirection engine to handle all incoming legacy URLs redirecting them to the proper pages on the new website, so as not to lose search engine ranking, visitor bookmarks and so on. However, the legacy …

ELMAH dll or custom assembly with modules breaking ImageVault UI in EPiServer 7.5 website

Some time ago I ran into some problems getting Meriwork‘s ImageVault to function on an EPiServer 7.5 website together with the ELMAH logging tool. Today I experienced the same thing, but this time with my project’s own custom Core assembly; I thought that it might be useful to write a short note about it. The problem appears when either surfing to the ImageVault UI (for …

EPiServer 7.5 ArgumentException: Unable to find a module by assembly ‘{assembly}, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null’

I ran into an ArgumentException setting up a custom plug-in decorated with the IFrameComponent attribute today; I wanted to have it appearing in the right hand area of the EPiServer edit mode. After setting up all views, models and so on, I got the following exception when I tried accessing the site. I fixed this problem by adding my assembly to the protectedModules section of …

Adding items to EPiServer’s global menu in edit/admin mode

We needed to create a custom toolbox in EPiServer‘s edit mode as a central place of keeping additional functionality for a client’s 7.5 website. The global menu seemed like an excellent place to do this. For a brief description on how to get EPiServer’s global menu on your own pages see this previous article. Here is a short note on how it can be done; …

EPiServer Search in Edit Mode does not work, or only works for page ids

We noticed that the edit mode EPiServer search did not function properly for a new website being developed for a client. What caused the issue was mainly two things; the EPiServer search not being set up properly (causing the message Content not found), and some missing handler mappings in the IIS making us only being able to search based on PageIds. Here is a short …

ContentLink ArgumentNullException while saving AccessControlList on EPiServer page created programmatically

I received a disturbing ArgumentNullException today while removing read access for the Everyone role on new pages created in codebehind. Not really difficult once you figure it out, but I thought I’d provide an example to show how it may be done. EPiServer ContentLink value cannot be null calling ACL.Save method At first glance it may seem as it is a good idea to take …

Notes about default property values in EPiServer 7.5

I needed to set default values for a couple of my EPiServer 7.5 block and page properties today, and found Per Mange Skuseth‘s article on Attribute-based default values. I really like Per’s way of dealing with them, as you get to have each default value in connection with the property that it will affect, rather than stoving them away in some obscure method override chunk …