robert.dougan@mimtech.co.uk
Dec 2, 2010
visibility 6407
star star star star star
(0 votes)

Setting Up a New VPP

I had to configure a new VPP for a Content Channel to work with the SharePoint Connector to push documents from a SharePoint site into my EPiServer site.

So, I created a new VPP entry in my EPiServer.config…

   1: <add showInFileManager="true" virtualName="FOI" virtualPath="~/FOI/"
   2: bypassAccessCheck="false" indexingServiceCatalog="Web" 
   3: physicalPath="C:\EPiServer\VPP\MySite\FOI"
   4: name="FOIFiles" type="EPiServer.Web.Hosting.VirtualPathVersioningProvider,EPiServer" />

…and then configured my Content Channel.

All went well and SharePoint was able to upload documents.

However, when I tried to serve out the documents on the site or view them in the file manager, I kept getting 404’s.

The problem was that, in addition to the VPP entry in the EPiServer.config file, you also need to make a <location> entry in the web.config for your VPP, like so…

   1: <location path="FOI">
   2:     <system.webServer>
   3:         <handlers>
   4:             <add name="webresources" path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" />
   5:             <add name="wildcard" path="*" verb="*" type="EPiServer.Web.StaticFileHandler, EPiServer" />
   6:         </handlers>
   7:     </system.webServer>
   8:     <staticFile expirationTime="-1.0:0:0" />
   9: </location>

Perhaps an obvious thing but I didn’t see any information about this on EPiServer World so I thought I would post it here for anyone else who may encounter the same problem.

Dec 02, 2010

Comments

smithsson68@gmail.com
smithsson68@gmail.com Dec 3, 2010 03:43 PM

Thanks for this Robert!

Jan 18, 2011 04:52 PM

thanks for this.. just what I was looking for.

error Please login to comment.
Latest blogs
Composition Over Inheritance: Why Your Content Contract Is Not a Base Class

Inside the structural conformance pattern in SaaS CMS — from server-side inheritance to pipeline governance. A contract in Optimizely SaaS CMS is...

Vipin Banka | Sep 19, 2026

Optimizely Opti ID Integration: Why the API Key Was Missing from the DXP Management Portal

While working on an Optimizely CMS 12 Opti ID integration recently, we ran into an issue that initially appeared to be related to SSO authenticatio...

Madhu | Sep 18, 2026 |

Extending a Contract: What You Can Override

Contracts share fields across content types — but not every field setting can be overridden. Push the same contract onto several components, and CM...

Chirag Khanna | Sep 18, 2026 |

Building a Blazor Server UI Inside the Optimizely CMS 13 Admin Shell

What I learned shipping a Blazor Server UI inside Optimizely CMS 13 — Razor components in a NuGet package, the Blazor hub next to MapContent(),...

Stanisław Szołkowski | Sep 17, 2026 |