A critical vulnerability was discovered in React Server Components (Next.js). Our systems remain protected but we advise to update packages to newest version. Learn More

Jonas Lindau
Apr 1, 2011
  4098
(0 votes)

MIME-types and VPP

Yesterday i ran into a problem when i was moving an old JAVA-application from an Apache-server into i VPP-folder on our EPiServer site.

What i wanted to do was to host the JNLP-file and the JAR-files in a VPP-folder, and simple create a hyperlink to the JNLP-file from a web page, rather then have a separate Apache that only serves JNLP-files.

I knew it would be a bit of an issue to set the correct MIME-types for my JNLP-file when stored on a VPP-folder, so what i wanted was a flexible solution that would allow me to add other MIME-types if needed. Here is what i came up with:

 

First of all i added a handler in global.asax that is triggered when i file transmission starts.

   1:  void Application_Start(object sender, EventArgs e)
   2:  {
   3:      UnifiedFile.UnifiedFileTransmitting += 
               new UnifiedFileEventHandler(UnifiedFile_UnifiedFileTransmitting);
   4:  }

 

Also in global.asax:

   1:  void UnifiedFile_UnifiedFileTransmitting(UnifiedFile sender, 
           UnifiedVirtualPathEventArgs e)
   2:  {
   3:      if (sender == null || sender.Name == null || sender.Extension == null)
   4:          return;
   5:   
   6:      UnifiedFileManager.HandleMimeType(sender.Extension);
   7:  }

 

As you can see i don’t add a lot of code in global.asax, i prefer to create manager-classes. The UnifiedFileManager-class looks like this:

   1:  public static class UnifiedFileManager
   2:  {
   3:      public static void HandleMimeType(string Extension)
   4:      {
   5:          string HandledMimeTypes = 
                   ConfigurationManager.AppSettings["HandledMimeTypes"].ToString();
   6:   
   7:          foreach (string HandledMimeType in HandledMimeTypes.Split("|".ToCharArray()))
   8:          {
   9:              string[] ThisMimeType = HandledMimeType.Split(";".ToCharArray());
  10:              if (ThisMimeType[0].Equals(Extension))
  11:                  HttpContext.Current.Response.ContentType = ThisMimeType[1];
  12:          }
  13:      }
  14:  }

 

And the final step is to add a line in appSettings. This is where you store the MIME-types and their extensions:

<add key="HandledMimeTypes" value=".jnlp;application/x-java-jnlp-file" />

To add more MIME-types, simple separate them with a |-character, like this:

<add key="HandledMimeTypes" 
value=".jnlp;application/x-java-jnlp-file|.pdf|application/octet-stream" />

Now, i was able to launch my JNLP-file without any problems.

Apr 01, 2011

Comments

Please login to comment.
Latest blogs
Troubleshooting with Azure Application Insights Using KQL

Users at least get access to Azure Application Insights even within minimum access level if you are requesting access to DXP management portals at...

K Khan | Dec 21, 2025

Looking back at Optimizely in 2025

Explore Optimizely's architectural shift in 2025, which removed coordination cost through a unified execution loop. Learn how agentic Opal AI and...

Andy Blyth | Dec 17, 2025 |

Cleaning Up Content Graph Webhooks in PaaS CMS: Scheduled Job

The Problem Bit of a niche issue, but we are building a headless solution where the presentation layer is hosted on Netlify, when in a regular...

Minesh Shah (Netcel) | Dec 17, 2025

A day in the life of an Optimizely OMVP - OptiGraphExtensions v2.0: Enhanced Search Control with Language Support and Synonym Slots

Supercharge your Optimizely Graph search experience with powerful new features for multilingual sites and fine-grained search tuning. As search...

Graham Carr | Dec 16, 2025