今天午餐時候,我與 rob conery研究將this developer’s life播客網站移動到 git中。我們錄制了整個升級和遷移經歷,它很快會作為一個視頻上傳到tekpub上。 植入:在TekPub.tv上簽出 我的 TekPub 秀源代碼 。 在部署時出現了一個問題。我們將我們的數據庫從SQ
今天午餐時候,我與 rob conery研究將this developer’s life播客網站移動到 git中。我們錄制了整個升級和遷移經歷,它很快會作為一個視頻上傳到tekpub上。
???????? 植入:在TekPub.tv上簽出。
在部署時出現了一個問題。我們將我們的從SQL Compact移動到了 Azure 中的 SQL Server 實例。但是,我們如何讓我們的連接字符串是秘密的呢?我們將我們的源代碼推送到 GitHub上,但不想公開我們的連接字符串和密碼。
有時,你會制作一個 Web.Release.Config 文件,然后把它們放在那兒。有時你會制作一個 connectionStrings.config ,然后從 web.config 中引用它,但永遠不會部署它。
然而,Azure 允許您將這些配置設置安全地保存在 Azure 中,所以它們永遠不會以代碼形式顯示。請注意下面的屏幕截圖。有一個名為”TDL.”的連接字符串,它與我們在代碼中所引用的名稱和web.config 中連接字符串的名稱是相匹配的。
我們的 ASP.NET Web Pages數據庫調用是針對 WebMatrix.Data 中的 Database.Open。這是相當簡單的。
var db = Database.Open("TDL");
這用于引用一個 TDL.sdf SQL Server Compact Edition (SQL CE) 文件。然后我們將它移到一個連接字符串中。
<connectionStrings><br /> <add name="TDL" connectionString="blah blah" providerName="yada yada"/><br /></connectionStrings>
如果您的 Azure 配置(請看上面的截圖)擁有一個具有相同名稱的值,當部署您的應用程序時,來自Azure 的安全值將被替換。
陷阱警告:我花了二十分鐘試圖找出為什么我的值沒有得到更新。我的應用程序在操作時,好像根本就沒有任何連接字符串值。我獲得信息”找不到連接字符串”TDL””。多次氣得咬牙切齒之后,我發現(多虧David Ebbo的幫助) 我把
所有的一切,都運作得很好。
它讓我們把代碼放在 GitHub上,設置直接從 GitHub中自動部署到 Azure,同時仍讓我們的 SQL 連接字符串 (和任何其他的產品設置) 是私密的。