2013-08-26 226 views
3

我有3個Web部署(Visual Studio發佈項目到包)我使用msdeploy命令與服務器同步的包。其中一個包是新增加的。其他兩個軟件包工作正常,除了新添加的軟件包。我在日誌中看到以下錯誤。由於iisApp提供程序的權限已在IIS管理器委派設置中設置,因此我不確定在哪裏設置此權限。我是IIS配置和.net開發的新手。任何人都可以提供信息,爲什麼我得到這個錯誤?Webdeploy權限問題

下面是使用命令:

PS D:\Deployment> &'C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe' -verb:sync -source:package='D:\temp\CI.Web.Pack_20130824.1\_PublishedWebsites\ProjectXYZ_Package\ 
ProjectXYZ.zip' -dest="auto,computerName='https://localhost:8172/msdeploy.axd?site=siteName',username 
='deployUserName',password='deployPassword',authType=basic,includeAcls='False'" -skip:objectName=createApp -disableLink:AppPoolExtens 
ion -disableLink:ContentExtension -disableLink:CertificateExtension -allowUntrusted 
Info: Using ID '2b0c6151-a2b0-4a87-9135-263330c5e619' for connections to the remote server. 
Info: Object createApp (D:\Builds\2\Mayo.KCMS\CI.Web.Pack\Sources\DEV\Web\ProjectXYZ\obj\Rele 
ase\Package\PackageTmp) skipped due to skip directive 'CommandLineSkipDirective 1'. 
Info: Adding sitemanifest (sitemanifest). 
Info: Adding IIS Application (Default Web Site/ProjectXYZ_deploy) 
Error Code: ERROR_USER_NOT_AUTHORIZED_FOR_IISAPP 
More Information: Could not complete an operation with the specified provider ("iisApp") when connecting using the Web M 
anagement Service. This can occur if the server administrator has not authorized the user for this operation. iisApp htt 
p://go.microsoft.com/fwlink/?LinkId=178034 Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_NOT_ 
AUTHORIZED_FOR_IISAPP. 
Error count: 1. 

錯誤的服務器:

wmsvc.exe Error: 0 : User: 
Client IP: ::1 
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: 6b694745-0024-416c-9439-3e97608417b9 
MSDeploy.RequestCulture: en-US 
MSDeploy.RequestUICulture: en-US 
ServerVersion: 9.0.1631.0 
Skip: objectName="^configProtectedData$"objectName="createApp" 
Provider: auto, Path: 
A tracing deployment agent exception occurred that was propagated to the client. Request ID '6b694745-0024-416c-9439-3e97608417b9'. Request Timestamp: '8/26/2013 2:01:55 PM'. Error Details: 
ERROR_USER_NOT_AUTHORIZED_FOR_IISAPP 
Microsoft.Web.Deployment.DeploymentDetailedUnauthorizedAccessException: Could not complete an operation with the specified provider ("iisApp") when connecting using the Web Management Service. This can occur if the server administrator has not authorized the user for this operation. iisApp http://go.microsoft.com/fwlink/?LinkId=178034 Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_NOT_AUTHORIZED_FOR_IISAPP. 
    at Microsoft.Web.Deployment.DelegationHelper.ImpersonateForOperation(String deploymentAction, String deploymentProvider, String deploymentPath, DelegationContextCache cache) 
    at Microsoft.Web.Deployment.DelegationHelper.ImpersonateForOperation(String deploymentAction, DeploymentObject deploymentObject) 
    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.SyncChildren(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, Nullable`1 syncPassId) 
    at Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentAsyncData asyncData, Nullable`1 passId) 
    at Microsoft.Web.Deployment.DeploymentAgent.HandleRequestWorker(DeploymentAgentAsyncData asyncData) 
    at Microsoft.Web.Deployment.DeploymentAgent.HandleRequest(DeploymentAgentAsyncData asyncData) 

enter image description here

回答

6

我已找到問題的解決方案。第三個軟件包試圖在服務器上創建一個新的應用程序,因爲它的應用程序名稱不同於其他兩個軟件包。我添加了一個新的setParameters.xml文件,其中包含應用程序名稱的條目,該文件將使用前兩個軟件包部署到的默認應用程序名稱來覆蓋默認應用程序名稱。我將這個setParameters.xml文件作爲參數傳遞給Webdeploy命令。

&'C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe' -verb:sync -source:package='D:\temp\Project_XYZ.zip' -setParamFile:setParameters.xml -dest="auto,computerName='https://localhost:8172/msdeploy.axd?site=siteName',username='deployUser',password='changeMe',authType=basic,includeAcls='False'" -skip:objectName=createApp -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -allowUntrusted -whatif 

setParameters.xml

<?xml version="1.0" encoding="utf-8"?> 
<parameters> 
    <setParameter name="IIS Web Application Name" value="siteName" /> 
</parameters> 
4

除非用戶是管理員,您需要授予他們訪問部署到網站。您可以右鍵單擊IIS管理器中的網站並選擇Deploy :: Configure Web Deploy Publishing。只需選擇用戶並單擊確定(您可以刪除它在桌面上生成的發佈設置文件)

+1

感謝豐富!我發現我做錯了什麼解決方案。我在setParameters.xml文件中設置了錯誤的應用程序名稱。 – Kalyan