[Visual Studio 2013] Deploy Web Site and SQL
Web Deploy 除了可以發佈網站之外也可以發佈資料庫
工作環境
Windows 8.1 Enterprise x64
SQL Server2012 Developer Edition With Sp1 x64
Visual Studio 2013 Update 1
準備工作
建立 Web Deploy Server
http://www.dotblogs.com.tw/yc421206/archive/2013/03/15/96849.aspx
開始演練
用 Administrator 權限開 VS 2013
建立專案
在這裡我是用預設的專案來演練
因為預設的 MVC 專案並沒有存取任何的 DbContext,所以在開啟專案後,按F5,註冊一筆資料,要讓 EF 在 App_Data 產生 *.mdf,有了這個檔案後我們就可以發佈網站了
設定發行定義
在專案屬性裡設定
2.按下 Import from web.config,載入連線字串
3.在這裡我們可以決定 Destination Database,也就是發行位置,我選擇我本機的 SQL Server,『Data Source=.;Initial Catalog=DemoDB;User ID=sa;Password=ooxx』,DemoDB 目前還不存在
4.決定要發行 Schema 或是 Data,也可以自定 T-SQL
發行網站
在專案按右鍵publish,
選擇要不要更新資料庫,以及替換 SQL Connect string
但一路走來,Update Database 會被反白,如下圖
PS.Code First 不應該使用這種方式部署資料庫,為了演練部署 SQL 我便這樣做
@ IdentityModels.cs
VS 2013 會去抓 ApplicationDbContext 的建構子 "DefaultConnection” 連線字串,被抓到的話就不會使用 Update Database
@ Web.Conifg
所以我們要再新增參數一模一樣的連線字串,
從 DefaultConnection 複製一個新的連線字串設定名為 ApplicationDbContext
<add name="ApplicationDbContext" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-WebApplication1-20140121024408.mdf;Initial Catalog=aspnet-WebApplication1-20140121024408;Integrated Security=True"
providerName="System.Data.SqlClient" />
這時候再按下發行,兩組連線字串,都設成一樣或是只設 DefaultConnection ,因為最終網站是會抓 “DefaultConnection “ 這一組連線字串
發行成功後,我本機的 SQL Server 出現了 DemoDB 資料庫以及資料表
網站也正常運行。
文章出自:http://www.dotblogs.com.tw/yc421206/archive/2014/01/21/141965.aspx
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET