[Visual Studio 2013] Deploy Web Site and SQL

[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

建立專案

在這裡我是用預設的專案來演練

image

 

因為預設的 MVC 專案並沒有存取任何的 DbContext,所以在開啟專案後,按F5,註冊一筆資料,要讓 EF 在 App_Data 產生 *.mdf,有了這個檔案後我們就可以發佈網站了

image

設定發行定義

在專案屬性裡設定

image

image

 

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

image

 

發行網站

在專案按右鍵publish,

選擇要不要更新資料庫,以及替換 SQL Connect string

image


但一路走來,Update Database 會被反白,如下圖

image

PS.Code First 不應該使用這種方式部署資料庫,為了演練部署 SQL 我便這樣做

@ IdentityModels.cs

VS 2013 會去抓 ApplicationDbContext 的建構子 "DefaultConnection” 連線字串,被抓到的話就不會使用 Update Database

image

 

@ 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" />

image

 

 

這時候再按下發行,兩組連線字串,都設成一樣或是只設 DefaultConnection ,因為最終網站是會抓 “DefaultConnection “ 這一組連線字串

image

 

 

發行成功後,我本機的 SQL Server 出現了 DemoDB 資料庫以及資料表

 

image

 

 

網站也正常運行。

image

 

 


文章出自:http://www.dotblogs.com.tw/yc421206/archive/2014/01/21/141965.aspx

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo