2017-06-26 116 views
1

我有一個批處理腳本步驟,在我的web部署結束時運行該腳本使用aspnet_regiis.exe加密web.config中的連接字符串,在日誌中它看起來很順利,但它並不真正加密connectionString,我在我的遠程機器上運行批處理。有沒有辦法通過Release定義來完成,或者用戶必須每次都在本地運行批處理?TFS 2017 - aspnet_regiis.exe在發佈定義?

這裏是代碼。

start C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -pe "connectionStrings" -app "/" -site "2" 
echo Encryption Successfull! 
pause 
+0

您是否收到任何錯誤或提示信息? –

回答

1

首先建議你使用你的構建服務帳戶RDP到遠程機器上並運行批處理腳本。仔細檢查您是否缺少該帳戶的任何權限。

因爲日誌看起來很好,但實際上並沒有對連接字符串進行加密。也試着做下面的一些測試來執行它:

  • 你比較部署到 服務器到原來的加密的配置文件中的轉化web.config文件?使用 服務器上的兩個文件進行測試。
  • 嘗試解密服務器上的配置文件,並查看是否獲得了正確的連接字符串 。
+0

剛發現一個解決方案。它是權利錯誤,代理運行在網絡服務下,NetworkServices沒有權利。我將代理更改爲在管理員下運行,但它的工作原理並不理想,但可行。我如何設置NetworkServices的管理員權限? –

+0

如果我將NetworkServices權限更改爲管理員,它僅適用於部署的網頁,這對我來說並不好,每次部署一個新網站NetworkServices權限都會恢復爲默認值。 –

+0

@WojtekT如果是這樣,您是否需要將代理作爲服務模式運行?您可以嘗試運行配置爲交互模式而不是服務的一個構建代理的版本。這可以給帳戶足夠的權限,這可能會訣竅。 https://www.visualstudio.com/en-us/docs/build/concepts/agents/agents#account –

相關問題