我試圖使用網絡部署來部署我dacpac包,裏面涉及到一些執行SQL腳本。 我有本地Windows帳戶名爲\ DeploymentService,這是本地Administrators組,我想自己的數據庫,並執行腳本。Web部署模擬(管理服務委派)行不通
對於 - 我配置委派相應的 - 在管理服務委派我設置爲「特定用戶」爲dbDacFx規則= \ DeploymentService提供
我根據創建SQL Server中的ServerAdmin登錄密碼。我的WMSvc在本地服務帳戶下執行。
我使用下面的命令行參數用於部署:
msdeploy.exe -verb:同步 -source:dbDacFx =「C:\主\ SRC \ Community.DB \ BIN \調試\ Community.DB.dacpac」 -dest:dbDacFx = 「數據源=;數據庫= CommunityInt;集成安全性=真」,計算機名=」 https://Community02:8172/msdeploy.axd?site=Default Web站點」,用戶名= \ DeploymentService,密碼= ***** ********,authType = basic -allowuntrusted
我在PC上執行它,目標是不同的PC。
但是這個失敗,錯誤「無效的句柄」,或者根據我必須在創建我的SQL Server公共角色「本地服務」登錄「類名未找到」。
預期行爲: 當我將管理服務委派中的用戶名設置爲特定帳戶時,我希望MSDeploy在我指定的帳戶下執行。
實際行爲: 我追查在目標環境中使用SQL事件探查器,我發現了WMSVC在其進程帳戶執行msdeploy(LOCAL SERVICE),而不是\ DeploymentService,這就是爲什麼腳本執行失敗。如果在SQL服務器上我有本地服務帳戶映射到serveradmin角色,那麼它工作正常。如果我在。\ DeploymentService帳戶下執行WMSvc,它也可以正常工作。
因此,基本上沒有辦法在管理服務代理中使用「用戶名」 - 這與您在此設置的內容無關 - 它不起作用。
任何一個人知道如何使這項工作?
關鍵詞:WebDeploy,WMSVC,dbDacFx,模擬,代表團
一個奇怪的快速問題...如果你想讓連接使用DeploymentService的聲望,你有沒有爲SpecificUser設置它的原因,而不是將IdentityType設置爲「CurrentUser」(因爲這就是你連接的人)? – krolson
我也試過 - 不改變任何東西。 另外我假設「CurrentUser」應該表示被認證到WMSvc的用戶 - 如果我使用IIS用戶進行認證,這將不起作用。 –
我與MS Deploy開發者聯繫,他們確認這是一個錯誤,這可能會在下一個版本(WebDeploy 4),明年 –