我正在尝试使用 Web Deploy 来部署一个站点,该站点的根目录是 UNC 路径而不是本地驱动器。这是因为我想要一个共享配置,并让所有服务器指向相同的 UNC 内容。这样我就可以部署到一台服务器并同时更新所有服务器。我创建了一个共享,每个人都可以读取/写入。NTFS 权限将 appDomain 帐户的 ID 设置为完全控制,该帐户与管理服务委派中配置为特定用户的帐户相同。我可以以该 ID 登录到目标服务器,访问共享并创建/删除文件。
但是,我在目标服务器上的 Microsoft Web Deploy 日志中收到以下异常:
用户:客户端 IP:192.168.62.174 内容类型:application/msdeploy 版本:9.0.0.0 MSDeploy.VersionMin:7.1.600.0 MSDeploy.VersionMax:9.0.1631.0 MSDeploy.Method:同步 MSDeploy.RequestId:c060c823-cdb4-4abe-8294-5ffbdc327d2e MSDeploy.RequestCulture:en-US MSDeploy.RequestUICulture:en-US ServerVersion:9.0.1631.0 跳过:objectName="^configProtectedData$" 提供程序:自动,路径:发生了跟踪部署代理异常,该异常已传播到客户端。请求 ID“c060c823-cdb4-4abe-8294-5ffbdc327d2e”。请求时间戳:'8/23/2012 11:01:56 AM'。错误详细信息:ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER Microsoft.Web.Deployment.DeploymentDetailedUnauthorizedAccessException:无法对指定目录(“\someserver.mydomain.local\sharename\sitename\applicationName”)执行操作(“创建目录”)。如果服务器管理员尚未授权您正在使用的用户凭据执行此操作,则可能会发生这种情况。了解更多信息: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER. ---> Microsoft.Web.Deployment.DeploymentException: 错误代码为 0x80070005。---> System.UnauthorizedAccessException: 拒绝访问路径“\someserver.mydomain.local\sharename\sitename\applicationName”。在 Microsoft.Web.Deployment.NativeMethods.RaiseIOExceptionFromErrorCode(Win32ErrorCode errorCode, String maybeFullPath) 在 Microsoft.Web.Deployment.DirectoryEx.CreateDirectory(String path)
在 Microsoft.Web.Deployment.DirPathProviderBase.CreateDirectory(String fullPath, DeploymentObject source) 在 Microsoft.Web.Deployment.DirPathProviderBase.Add(DeploymentObject source, Boolean whatIf) --- 内部异常堆栈跟踪结束 --- --- 内部异常堆栈跟踪结束 --- 在 Microsoft.Web.Deployment.FilePathProviderBase.HandleKnownRetryableExceptions(DeploymentBaseContext baseContext, Int32[] errorsToIgnore, Exception e, String path, String operation) 在 Microsoft.Web.Deployment.DirPathProviderBase.Add(DeploymentObject source, Boolean whatIf) 在 Microsoft.Web.Deployment.DeploymentObject.Add(DeploymentObject source, DeploymentSyncContext syncContext) 在Microsoft.Web.Deployment.DeploymentSyncContext.HandleAdd(DeploymentObject destObject, DeploymentObject sourceObject) 在 Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject, DeploymentObject sourceObject) 在 Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject dest, DeploymentObject source) 在 Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject dest, DeploymentObject source) 在 Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest, DeploymentObject source) 在 Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject, DeploymentObject sourceObject) 在 Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable, Nullable1 syncPassId) at Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData, Nullable
1 passId) 在Microsoft.Web.Deployment.DeploymentAgent.HandleRequestWorker(DeploymentAgentAsyncData asyncData)位于 Microsoft.Web.Deployment.DeploymentAgent.HandleRequest(DeploymentAgentAsyncData asyncData)
在我运行部署的机器的控制台上显示如下:
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://服务器名称:8172/msdeploy.axd',includeAcls='True' -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"C:\Packages\Deployments\applicationName.SetParameters.xml" -allowUntrusted 信息:使用 ID“c060c823-cdb4-4abe-8294-5ffbdc327d2e”连接到远程服务器。信息:添加站点清单(sitemanifest)。信息:添加虚拟路径(JMS/admin)信息:添加目录(JMS/admin)。错误代码:ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER 更多信息:无法对指定目录(“\someserver.mydomain.local\sharename\sitename\applicationName”)执行操作(“创建目录”)。如果服务器管理员尚未授权您正在使用的用户凭据执行此操作,则可能会发生这种情况。了解更多信息: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER。错误:错误代码为 0x80070005。错误:拒绝访问路径“\someserver.mydomain.local\sharename\sitename\applicationName”。错误计数:1。