Unauthorized Access Exception using Web Deploy to Site when the site root is a UNC path
- by Peter LaComb Jr.
I am trying to use Web Deploy to deploy a site where the Site is rooted on a UNC path instead of a local drive. This is because I want to have a shared configuration, and have all servers point to the same UNC for content. That would allow me to deploy to one server and have all servers updated at the same time. I've created a share with everyone and users read/write. The NTFS permissions have the ID of the appDomain account as full control, and that is the same account that is configured as the specific user in Management Service Delegation. I can log on to the destination server as that ID, access the share and create/delete files.
However, I'm getting the following exception in my Microsoft Web Deploy log on the destination server:
User: Client IP: 192.168.62.174 Content-Type: application/msdeploy
Version: 9.0.0.0 MSDeploy.VersionMin: 7.1.600.0 MSDeploy.VersionMax:
9.0.1631.0 MSDeploy.Method: Sync MSDeploy.RequestId: c060c823-cdb4-4abe-8294-5ffbdc327d2e MSDeploy.RequestCulture: en-US
MSDeploy.RequestUICulture: en-US ServerVersion: 9.0.1631.0 Skip:
objectName="^configProtectedData$" Provider: auto, Path: A tracing
deployment agent exception occurred that was propagated to the client.
Request ID 'c060c823-cdb4-4abe-8294-5ffbdc327d2e'. Request Timestamp:
'8/23/2012 11:01:56 AM'. Error Details:
ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER
Microsoft.Web.Deployment.DeploymentDetailedUnauthorizedAccessException:
Unable to perform the operation ("Create Directory") for the
specified directory
("\someserver.mydomain.local\sharename\sitename\applicationName"). This
can occur if the server administrator has not authorized this
operation for the user credentials you are using. Learn more at:
http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER.
--- Microsoft.Web.Deployment.DeploymentException: The error code was 0x80070005. --- System.UnauthorizedAccessException: Access to the
path '\someserver.mydomain.local\sharename\sitename\applicationName' is
denied. at
Microsoft.Web.Deployment.NativeMethods.RaiseIOExceptionFromErrorCode(Win32ErrorCode
errorCode, String maybeFullPath) at
Microsoft.Web.Deployment.DirectoryEx.CreateDirectory(String path)
at Microsoft.Web.Deployment.DirPathProviderBase.CreateDirectory(String
fullPath, DeploymentObject source) at
Microsoft.Web.Deployment.DirPathProviderBase.Add(DeploymentObject
source, Boolean whatIf) --- End of inner exception stack trace ---
--- End of inner exception stack trace --- at Microsoft.Web.Deployment.FilePathProviderBase.HandleKnownRetryableExceptions(DeploymentBaseContext
baseContext, Int32[] errorsToIgnore, Exception e, String path, String
operation) at
Microsoft.Web.Deployment.DirPathProviderBase.Add(DeploymentObject
source, Boolean whatIf) at
Microsoft.Web.Deployment.DeploymentObject.Add(DeploymentObject source,
DeploymentSyncContext syncContext) at
Microsoft.Web.Deployment.DeploymentSyncContext.HandleAdd(DeploymentObject
destObject, DeploymentObject sourceObject) at
Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject
destObject, DeploymentObject sourceObject) at
Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject
dest, DeploymentObject source) at
Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject
dest, DeploymentObject source) at
Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject
dest, DeploymentObject source) at
Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject
destinationObject, DeploymentObject sourceObject) at
Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject
destObject, DeploymentSyncOptions syncOptions, PayloadTable
payloadTable, ContentRootTable contentRootTable, Nullable1
syncPassId) at
Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData
asyncData, Nullable1 passId) at
Microsoft.Web.Deployment.DeploymentAgent.HandleRequestWorker(DeploymentAgentAsyncData
asyncData) at
Microsoft.Web.Deployment.DeploymentAgent.HandleRequest(DeploymentAgentAsyncData
asyncData)
This is shown as the following on the console of the machine where I run the deployment:
C:\Users\PLaComb"C:\Program Files (x86)\IIS\Microsoft Web Deploy
V3\msdeploy.exe"
-source:package='C:\Packages\Deployments\applicationName.zip' -dest:auto,computerName='https://SERVERNAME:8172/msdeploy.axd',includeAcls='True'
-verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"C:\Packages\Deployments\applicationName.SetParameters.xml"
-allowUntrusted Info: Using ID 'c060c823-cdb4-4abe-8294-5ffbdc327d2e' for connections to the remote server. Info: Adding sitemanifest
(sitemanifest). Info: Adding virtual path (JMS/admin) Info: Adding
directory (JMS/admin). Error Code:
ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER More Information: Unable to
perform the operation ("Create Directory") for the specified directory
("\someserver.mydomain.local\sharename\sitename\applicationName").
This can occur if the server administrator has not authorized this
operation for the user credentials you are using. Learn more at:
http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER.
Error: The error code was 0x80070005. Error: Access to the path
'\someserver.mydomain.local\sharename\sitename\applicationName' is
denied. Error count: 1.