Join our community!

Get everything you need to start developing EPiServer solutions.

VirtualPathNativeProvider must have modify rights to 'D:\www\MyWebsite\MyWebsiteFiles\PageFiles'

January 8 2008, 14:59
I had to delete and add the MyWebsiteFiles folder for a website. After that I got the following error message: VirtualPathNativeProvider must have modify rights to 'D:\www\MyWebsite\MyWebsiteFiles\PageFiles' What user must have modify rights to the PageFiles older?

  • January 8 2008, 16:00
    Here is the stacktrace: Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: EPiServer.Core.EPiServerException: VirtualPathNativeProvider must have modify rights to 'D:\www\MyWebsite\MyWebsiteFiles\PageFiles' Source Error: [No relevant source lines] Source File: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\59372f8f\22496ac0\App_global.asax.ka4zw70c.0.cs Line: 0 Stack Trace: [EPiServerException: VirtualPathNativeProvider must have modify rights to 'D:\www\MyWebsite\MyWebsiteFiles\PageFiles'] EPiServer.Web.Hosting.VirtualPathUnifiedProvider.GetAndValidatePhysicalPathBase(String physicalPath) +293 EPiServer.Web.Hosting.Versioning.VersioningFileSystem.Init(NameValueCollection config) +107 EPiServer.Web.Hosting.VirtualPathVersioningProvider..ctor(String name, NameValueCollection configParameters) +153 [TargetInvocationException: Exception has been thrown by the target of an invocation.] System.RuntimeMethodHandle._InvokeConstructor(Object[] args, SignatureStruct& signature, IntPtr declaringType) +0 System.RuntimeMethodHandle.InvokeConstructor(Object[] args, SignatureStruct signature, RuntimeTypeHandle declaringType) +13 System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +366 System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +1036 System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +114 EPiServer.Web.Hosting.VirtualPathHandler.CreateVirtualPathProviderInstance(ProviderSettings providerSettings) +281 EPiServer.Web.Hosting.VirtualPathHandler.InitializeProviders(ProviderSettingsCollection providers) +172 EPiServer.Global.InitializeVirtualPathProviders() +117 EPiServer.Global..ctor() +460 MyWebsite.Templates.Global..ctor() +23 ASP.global_asax..ctor() in c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\59372f8f\22496ac0\App_global.asax.ka4zw70c.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, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck) +0 System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache) +103 System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache) +261 System.Activator.CreateInstance(Type type, Boolean nonPublic) +66 System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +1036 System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +114 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance() +175 System.Web.HttpApplicationFactory.FireApplicationOnStart(HttpContext context) +3412950 System.Web.HttpApplicationFactory.EnsureAppStartCalled(HttpContext context) +125 System.Web.HttpApplicationFactory.GetApplicationInstance(HttpContext context) +91 System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +317
  • January 8 2008, 17:16
    Hi EPiServer Manager changes the access control list for the VPP folder during installation like this: The exception you see is the result from EPiServer's test during startup that it can change the VPP folder. So I guess you have to add change priveleges for the folder to the ASP.NET Machine Account used by the aspnet worker process... Regards, Fredrik Haglund INEXOR AB - http://blog.fredrikhaglund.se
  • January 9 2008, 13:27
    ASP.NET Machine Account has Modify rights. So it can't be that. Anyways, I removed the folders and EPiServer creates the trhee foldes by itself. Then I copied the content for each folder from old to new, and it worked fine.
  • August 4 2008, 11:56
    My experience is the same as Steven's. That Everyone had Full Control wasn't enough for EPiServer; when I deleted the provider-mapped folder (eg. "PageFiles") and let EPiServer re-create it, it applied parent folder rights + change for IIS_WPG and ASPNET, and this solved the problem. I think there is a bug in the logic in EPiServer.Web.Hosting.VirtualPathUnifiedProvider.HasFileSystemRights().
  • August 4 2008, 20:01

    On W2003 Server and Vista the IIS application pool account of the web site must somehow be granted "Modify" rights on the VPP file tree because it is this login account identity that wants to write files into this file area when an editor uploads images and documents via the File Management tool.  Commonly this app pool account is NETWORK SERVICE. It could also be a domain account which must be a member of the local machine's IIS_WPG group account.   Depending on your security preferences grant recursive Modify rights over the whole of the VPP tree to the app pool account in use or a group of which it is a member on the local machine (usually IIS_WPG).

    On Windows XP however, it is the machine\ASPNET account that is running the web site, so it is that account that needs Modify permssion in this case.  There is no need to grant modify rights to the ASPNET account on W2003 or Vista.

    This isn't any different to what you had to do in EPiServer 4.6n with the /docrepository, /upload etc. folders, it's just that CMS5 now checks on startup that you've done it else the File Management facility is not much use in edit mode.

    Also make sure that the paths defined on the "physicalPath" attributes in the <virtualPath> config section in web.config are referencing the correct physical folders.  If you deploy your site from a development machine to a server without using EPiServer manager to install the site, you may forget to redefine the folder paths to the ones in use on the server. EPiServer will try to create the folders using the existing path definitions as defined on your dev machine, then will complain about the modify rights not being present, which of course they aren't because you didn't set them there.  You can waste a lot of time with that one.

  • May 7 2010, 9:26

    Thanks Everyone, Solved my issue

  • March 14 2012, 20:49

    On Server 2008 R2 and CMS 6 R2 this will help:

    See http://learn.iis.net/page.aspx/624/application-pool-identities/ for details.