我們目前將加密密鑰存儲在我們其他天青應用的受保護註冊表項中,並且通過啓動任務添加了該密鑰。雖然我看到lightswitch應用程序中也有一個csdef文件,但啓動任務似乎從未在本地或在天藍色時觸發。我甚至嘗試將輸出添加到cmd文件,以便我可以查看是否有任何類型的錯誤,但該文件甚至沒有創建。 Lightswitch似乎沒有Win32.registry,所以通過代碼添加密鑰似乎是不可能的。是否可以在Azure lightswitch應用程序中啓動任務?
是否有其他人能夠獲得啓動任務運行在天藍色的主持lightswitch應用程序?據我瞭解,lightswitch和包含web.worker角色的項目之間的天藍色方面應該不同。它們仍然在虛擬機上運行,因此啓動任務仍應能夠訪問註冊表。如果它不可能有任何其他想法如何添加註冊表項?把密鑰放在代碼中絕對不是理想的。僅供參考,reg文件和cmd文件位於服務器文件夾中,並設置爲內容並始終複製。
STARTUP.CMD:
regedit /s 456ddfrt.reg
exit /b 0
csdef:
<WebRole name="LightSwitchWebRole"
vmsize="Small"
enableNativeCodeExecution="true">
<Startup>
<Task commandLine="startup.cmd" executionContext="elevated" taskType="simple"/>
</Startup>
解決方案
我結束了使用獨立存儲由揚的建議。代碼示例如下。
//Get key from storage, add if not exists
try
{
String strKey = (string)appSettings["encrKey"];
strKey = DecryptString(strKey);
}
catch (Exception Ex)
{
appSettings.Add("encrKey",[mykey]);
String strKey = (string)appSettings["encrKey"];
strKey = DecryptString(strKey);
}
它還涉及到把鑰匙的代碼,但關鍵是用加密的不同的加密方法,並在Azure上的可能性,他們將可以訪問我的代碼是非常低的。感謝所有的建議!
我個人還沒有試過這個,但是如果你在這個角色上啓用RDP,它會幫助你進一步調查嗎?詳情如下:http://blogs.msdn.com/b/avkashchauhan/archive/2011/08/02/windows-azure-and-visual-studio-lightswitch-2011-part-3-3-adding-rdp-access -to-lightswitch-2011-application-which-is-already-deployed-to-windows-azure.aspx – RichardC 2013-03-12 18:05:10
我不認爲rdp在這種情況下會做很多工作,因爲它甚至不能在我的本地機器上工作。我之前用過其他東西,而且它很有幫助。 – 2013-03-13 18:03:02
當您閱讀發佈嚮導時,您是否選擇了「服務類型」作爲「網站」或「雲服務」?我認爲您正在部署到Cloud Service? – RichardC 2013-03-15 09:45:21