2012-08-22 62 views
1

我試圖使用網絡部署來部署我dacpac包,裏面涉及到一些執行SQL腳本。 我有本地Windows帳戶名爲\ DeploymentService,這是本地Administrators組,我想自己的數據庫,並執行腳本。Web部署模擬(管理服務委派)行不通

對於 - 我配置委派相應的 - 在管理服務委派我設置爲「特定用戶」爲dbDacFx規則= \ DeploymentService提供 Management Service Delegation - for dbDacFx

我根據創建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,模擬,代表團

+0

一個奇怪的快速問題...如果你想讓連接使用DeploymentService的聲望,你有沒有爲SpecificUser設置它的原因,而不是將IdentityType設置爲「CurrentUser」(因爲這就是你連接的人)? – krolson

+0

我也試過 - 不改變任何東西。 另外我假設「CurrentUser」應該表示被認證到WMSvc的用戶 - 如果我使用IIS用戶進行認證,這將不起作用。 –

+0

我與MS Deploy開發者聯繫,他們確認這是一個錯誤,這可能會在下一個版本(WebDeploy 4),明年 –

回答

1

嗨我很抱歉聽到你正在運行到這個問題。我想告訴您,我們在dbDacFx提供程序/ MSDeploy中存在一個錯誤,它在WMSvc方案中與dbDacFx提供程序一起使用時阻止SQL Auth正常工作。

我們還沒有收到足夠的反饋意見,以保證爲MSDeploy提供服務以解除阻止。如果您受到此影響,最好的辦法是在http://aspnet.uservoice.com處創建一個條目並對其進行投票。如果我們獲得了足夠的選票,那麼我們可以考慮發佈更新以解除封鎖。關於這些壞消息我很遺憾。