2013-10-28 47 views
8

由於Web Deploy 3.5使用標誌–EnableRule:EncryptWebConfig支持連接字符串的自動加密。然而,在與運行它:MSDeploy自動加密連接字符串,在字典中找不到密鑰

"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -source:package='C:\[...]\MyApp.WebDeployPackage.zip' -dest:auto,includeAcls="False" -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"C:\[...]\MyApp.SetParameters.xml" -EnableRule:EncryptWebConfig -verbose 

我得到:

Error Code: ERROR_FAILED_TO_ENCRYPT_WEB_CONFIG 
More Information: Failed to encrypt destination web.config: C:\[...]\Web.config. 
Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FAILED_TO_ENCRYPT_WEB_CONFIG. 
Error: The given key was not present in the dictionary. 

Learn more-link點過時的文件,我似乎無法在網上找到任何信息。

我懷疑這個工具在幕後使用aspnet_regiis,但我不確定。是的,我使用完全管理權限運行上述操作。

+0

我正在部署到Windows Server 2008,即使使用詳細參數,也沒有收到任何錯誤。它只是沒有加密連接字符串。部署相同的包到2012年服務器我收到錯誤。對於部署到2008和IIS 7.5的用戶來說,這只是一個參考。 – bkstill

回答

1

我有同樣的問題,但它不是由於嵌套web.config文件。原因出於某種原因,我的部署用戶無法訪問密鑰容器(在Web部署服務錯誤日誌中,引發的異常是System.Configuration.ConfigurationErrorsException: The RSA key container could not be opened.)。

我結束了使用這個命令:aspnet_regiis -pa "NetFrameworkConfigurationKey" "<MYUSER>"<MYUSER>必要的訪問權限。

0

我得到了同樣的問題,因爲嵌套web.config文件。

這似乎是EncryptWebConfig規則中的一個錯誤。

如果您只能使用根web.config進行管理,則可以解決此問題。

+0

通過嵌套'Web.config',你是指根中的一個文件,以及例如在Views-directory中的一個文件? (或其他目錄,如果不是ASP.NET MVC。) – cederlof

+0

是的,就是這樣! – Stephan

+0

這是問題嗎?我正在努力自己找到相同的答案.. – calcazar