Mathias Kunto Archive

Using NLog with EPiServer and log4net

In my current EPiServer project we decided to use NLog for our logging needs rather than going with log4net. Since EPiServer has a dependency on the latter we wanted a way of bridging EPiServer’s log messages to our own NLog setup. This was accomplished by creating a new appender for log4net, redirecting all relevant log messages to it and converting them into something that NLog …

Security fix for the Language File Editor tool in EPiServer 7.5

I applied the security fix that I made for the EPiServer CMS 6 R2 version of the Language File Editor tool to the EPiServer 7 version that Hannu Hartikainen made earlier. Also did some code refactoring and removed the possibility for web administrators to create their own language files, as well as deleting existing ones; these were a source for potential headache. Code available at …

Security fix for the Language File Editor tool in EPiServer CMS 6 R2

In 2011 I wrote a tool allowing web administrators to edit EPiServer’s language XML files through admin mode. As the code was constructed it assumed that the environment was properly set up (i.e. securing the plugins preventing unauthorized access), thus trusting the user. Anyhow, failing to do so opened up for unauthorized users to read/modify/delete certain files on the server/shares. Here is a summary of …

EPiServer’s ContentReference.StartPage is an empty reference when lacking binding

I was setting up a new port for SSL on my local development machine for added security on a client’s EPiServer 7.5 website when I stumbled across an exception that was not all at once obvious. I set up a new https binding in the IIS along with a self signed certificate; my normal unsecure site continued to respond just fine to calls on http://localhost:17002/ …

Cache manager easing cache handling for EPiServer 7.5 with ISynchronizedObjectInstanceCache

We had this splendid little cache manager in my previous project that simplified handling caching for us. It was written by a former collegue of mine, Patrik Akselsson, and last week I found a need for a similar thing at my new client’s. Looking back at what I already had, I set about making a similar CacheManager that would work with the new EPiServer 7.5 …

Resolving your own and EPiServer’s dependencies without the EPiServer ServiceLocator

I recently got my hands on a new project at work and wanted to see if I could avoid using EPiServer‘s ServiceLocator to resolve the dependencies in my code. From previous projects I was used to being able to inject whatever I needed directly through the constructor, and felt that I wanted to continue doing so. For instance, my class CanHasCookies implements the interface ICanHasCookies …

Configuration file changes upgrading from EPiServer 7.0 to 7.5

All is set. You got the final go from your client to move their site from EPiServer 7.0 to 7.5, and from here on it should be a walk in the park. Coffee is brewed, installation packages and VPP migration tools downloaded, extracted and at the ready. The EPiServer’s Deployment Center upgrade process finishes without a hitch, and you run off to Visual Studio hitting …

Solution for DirectoryNotFoundException moving EPiServer 7 site – Could not find a part of the path {wwwroot}\ClientResources\ClientResources\packages.config

I encountered an annoying DiretoryNotFoundException while moving one of my existing EPiServer 7 hobby sites to a new server, and thought that a quick note about it would be in order. The exception was this; Could not find a part of the path ‘D:\Projekt\MyProject\src\MyProject.Web\ClientResources\ClientResources\packages.config’. After some well spent time reading the configuration files I found the cause being, as surprisingly often with this kind of …

Scheduled jobs with input parameters in EPiServer 7.5

The other day I got a question from a collegue of mine whether or not the piece I wrote on supplying scheduled jobs with input parameters (EPiServer CMS6R2) would still work for version 7.5. I suspected it would, but since I wanted to make sure I set up two of EPiServer’s Alloy template sites; one using WebForms and the other with MVC. Tweaked source code …

Easier log file retrieval in EPiServer 7.5 for environments with limited access to servers

I wrote a small EPiServer admin tool the other day in order to make it easier to retrieve log files without having direct access to the webserver. It is a rather straight forward piece that lists the files of a certain directory, and writes their content to the response output stream when clicked on. Limitations include the tool not taking load balanced multi server environments …

Orphaned translation scanner for EPiServer language files

My current project has undergone some rather large changes the last couple of months; core functionality being moved out of the solution, functionality needing to be cleaned away and so forth. I suspected that we were left with a rather large number of stray translations in our EPiServer language files because of this, so I took some time and wrote a small console tool to …

New Relic’s Real User Monitoring (RUM) breaks the EPiServer’s File Manager in Edit Mode

Update: There is a hotfix available for this, see Per’s comment further down. We noticed a weird problem on one of our test servers in my current project some time ago. For some reason there was a massive output of JavaScript in the EPiServer ActionWindow, in addition to the normal functionality making it impossible to use the file manager. Us not experiencing anything like it …

EPiServer 7 Installation Error – $accountName is not a valid user or group

I ran into some problems the other day trying to install an EPiServer 7 site onto an old Windows 7 developer machine using EPiServer‘s Deployment Center. Everything seemed to be going well until I was hit with an account related error. Opening up the installation PowerShell script file in question (\EPiServer\CMS\7.0.586.1\Install\System Scripts\Install Site (No database).ps1) soon revield what was going on. Apparently the EPiServer installation …

Insert links to bookmarks in other EPiServer pages

EPiServer‘s insert link dialog has an option that allows web editors to insert links to anchor tag bookmarks contained within the page currently being edited. This option, however, is not yet available when using the Page on this website alternative as a Link target. A client requested similar functionality for their EPiServer CMS 6 R2 installation, so I and my collegue Joachim Widén spent a …

Please explain yourself: Reasons and audit logging in EPiServer scheduled jobs

There are times when I’ve found that well considered and thought-through EPiServer scheduled job settings have been changed in environments where they really shouldn’t be. People usually have some reason for doing what they’re doing but it’s hard to follow if you’re unable to figure out why, and if nobody can remember doing it. I’ve had this audit log functionality on my TODO list for …

Child pages of forbidden PageTypes in EPiServer after PageType convertion

In my current project we do quite a bit of automatic copying of EPiServer pages as well as creation of child pages triggered by various web editor actions (part of the review functionality that Stefan Forsberg talks about in a series of posts starting with Reviewing pages in EPiServer – background). This is not a problem however, until the web administrators start to convert pages …