< TLDR>
與WebDeploy未經授權的錯誤它是在所有可能的使用MS網絡部署到從命令行部署Web應用程序到遠程主機與非管理員用戶?
</TLDR>401使用非管理員用戶
我已遵循微軟指南中的每一點Installing and Configuring Web Deploy。我的目標是能夠使用IIS用戶/非管理員用戶進行遠程Web部署。
做的所有步驟下所描述的安裝和配置網絡部署非管理員部署後,我得到以下日誌消息(表明一切正常):
Publish enabled for 'deploy_user'
Granted 'deploy_user' full control on 'C:\inetpub\wwwroot'
Successfully created settings file 'C:\Users\...\Desktop\deploy_user_Default Web Site.PublishSettings'
接下來,當我從我的本地機器上嘗試運行以下命令:
.\my_deploy_package.cmd /M:https://machine_name:8172/msdeploy.axd -allowUntrusted /U:deploy_user /P:deploy_password /A:Basic /T
我得到一個錯誤消息說:錯誤:遠程服務器返回錯誤:(401)未經授權。
如果我在目標機器上進入事件查看器>自定義視圖> Administratove活動,我看到一個「匹配」的錯誤此消息:
IISWMSVC_AUTHORIZATION_SERVER_NOT_ALLOWED
Only Windows Administrators are allowed to connect using a server connection. Other users should use the 'Connect To Site or Application' task to be able to connect.
Process:WMSvc User=deploy_user
此錯誤是完全一樣的,如描述this question。並且accepted answer表明我已經完成的是正確的方法。
我嘗試了幾種建議的解決方法,如this,但沒有任何東西似乎有所幫助。管理服務設置爲允許遠程連接(包括Windows和IIS管理器),並且我爲內置Windows用戶(非管理員)和IIS管理員用戶運行配置,但仍然出現相同的錯誤。只要我以管理員用戶運行deploy命令,就會成功。
我上午允許通過與我的非管理員deploy_user用戶的IIS GUI遠程連接(在IIS:連接至站點> [服務器URL]/[站點名稱]> deploy_user/deploy_password),這表明必要的權利和規則被配置。但是,當我嘗試運行部署腳本命令行時 - 用同一用戶 - 它失敗。
如果它實際上是作爲錯誤信息表明,任何非管理員用戶可以只使用連接到站點或通過IIS管理器應用,什麼是那麼推薦的方法做部署這樣的從命令行/構建服務器?我真的不想在生成服務器的配置文件中以明文形式輸入管理員用戶的用戶名/密碼...
我發現這個工作的一個選擇是,如果您的構建服務器和您嘗試部署的計算機具有通用的Active Directory(或其他共享用戶的方式),則可以跳過/A:Basic
標誌,並完全忽略用戶名和密碼。您只能確保運行部署的用戶對部署目標也具有管理員權限。但是,在我們的一種情況下,構建服務器和部署目標並不是有一個共同的用戶羣,所以這不是一個選項,我們回到用戶名/密碼以明文形式 - 這是不可取的在所有。
或許這可以幫助? http://stackoverflow.com/questions/2874939/how-to-use-msdeploy-and-target-a-specific-site –
@EladLachmi:你已經鏈接到的帖子中的建議正是我所做的(請參閱我的問題中的第三段之後的輸出_「完成...下所述的所有步驟後」)。 – Nailuj
對,現在我明白了。抱歉。 –