<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      代碼改變世界

      微軟ASP.NET站點(diǎn)部署指南(10):遷移至SQL Server

      2011-12-02 09:05  湯姆大叔  閱讀(3246)  評(píng)論(4)    收藏  舉報(bào)

      1.  綜述

      第2章的部署SQL Server Compact和第9章的部署數(shù)據(jù)庫(kù)更新里解釋了為什么最終要升級(jí)到完整版SQL Server 。本章節(jié)將告訴你如何來(lái)做。

       

      SQL Server Express和完整版SQL Server

      一旦你決定使用完整版SQL Server,你需要在開(kāi)發(fā)和測(cè)試環(huán)境使用SQL Server Express 或者完整版SQL Server。在工具支持和數(shù)據(jù)庫(kù)引擎功能上,SQL Server Compact 和其它版本的SQL Server都是有區(qū)別的,可以導(dǎo)致不同的代碼產(chǎn)生不同的結(jié)果。

       

      通常在開(kāi)發(fā)和測(cè)試環(huán)境(本機(jī))是選擇SQL Server Express,因?yàn)樗敲赓M(fèi)的,而且隨Visual Studio一起默認(rèn)安裝的。和SQL Server Compact不一樣, SQL Server Express和完整版SQL Server的數(shù)據(jù)庫(kù)引擎是一樣的。也就是說(shuō)再SQL Server Express測(cè)試的結(jié)果和在生產(chǎn)環(huán)境完整版SQL Server上測(cè)試的結(jié)果是一樣的。完整版SQL Server的工具大部分都可以在SQL Server Express上用(除了SQL Server Profiler)。 而且SQL Server Express也完整地支持存儲(chǔ)過(guò)程,視圖,觸發(fā)器,復(fù)制功能。(由于虛擬主機(jī)一般都不支持SQL Server Express,所以生產(chǎn)環(huán)境你需要使用完整版的SQL Server。)

       

      合并數(shù)據(jù)庫(kù)

      在Contoso University程序里有2個(gè)SQL Server Compact數(shù)據(jù)庫(kù),一個(gè)是membership 數(shù)據(jù)庫(kù)(aspnet.sdf),另一個(gè)是程序數(shù)據(jù)庫(kù)(School.sdf)。遷移的時(shí)候你可以將它們繼續(xù)保持2個(gè)數(shù)據(jù)庫(kù),也可以合并成一個(gè)數(shù)據(jù)庫(kù)。為了使用方便,你可能想讓2個(gè)庫(kù)合并在一起,還有一個(gè)原因是虛擬主機(jī)提供商,一個(gè)賬戶(hù)可能只允許創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),本教程用的提供商就是這樣的。

      在本章節(jié),你可以安裝如下方式遷移你的數(shù)據(jù)庫(kù):

          在開(kāi)發(fā)和測(cè)試環(huán)境遷移到2個(gè)SQL Server Express數(shù)據(jù)庫(kù)

          在生產(chǎn)環(huán)境遷移到一個(gè)完整版的數(shù)據(jù)庫(kù)

      提醒:如果根據(jù)本章節(jié)所做的操作出現(xiàn)錯(cuò)誤信息或一些功能不正常的話,請(qǐng)務(wù)必check Troubleshooting頁(yè)面

      2.  為測(cè)試環(huán)境創(chuàng)建SQL Server Express數(shù)據(jù)庫(kù)

      向測(cè)試環(huán)境部署QL Server Express數(shù)據(jù)庫(kù)之前,你需要手工創(chuàng)建這些數(shù)據(jù)庫(kù),但不需要手工創(chuàng)建表和插入數(shù)據(jù),Web Deploy會(huì)自動(dòng)幫你做這些工作。

      View按鈕選擇Server Explorer,右鍵Data Connections然后選擇Create New SQL Server Database

       

      Create New SQL Server Database對(duì)話框的Server name框里輸入".\SQLExpress",在New database name 框里輸入"aspnetTest",然后確定OK。

       

      用同樣的步驟創(chuàng)建"SchoolTest"數(shù)據(jù)庫(kù)。(使用Test后綴,是因?yàn)殚_(kāi)發(fā)環(huán)境和測(cè)試環(huán)境在一個(gè)機(jī)器上,我們需要讓不同的數(shù)據(jù)庫(kù)運(yùn)行在不同的實(shí)例上。)

      Server Explorer里顯示了創(chuàng)建的2個(gè)數(shù)據(jù)庫(kù)。

       

      3.  為新數(shù)據(jù)庫(kù)創(chuàng)建授權(quán)腳本

      開(kāi)發(fā)機(jī)的IIS上運(yùn)行程序的時(shí)候,訪問(wèn)數(shù)據(jù)庫(kù)使用的是默認(rèn)應(yīng)用程序池。但是,默認(rèn)的應(yīng)用程序池認(rèn)證是沒(méi)有權(quán)限打開(kāi)數(shù)據(jù)庫(kù)的。所以需要運(yùn)行一個(gè)授權(quán)腳本來(lái)授權(quán)。本小節(jié),你需要?jiǎng)?chuàng)建這個(gè)腳本,過(guò)后運(yùn)行它以便在IIS上運(yùn)行的時(shí)候能打開(kāi)數(shù)據(jù)庫(kù)。

       

      在解決方案的SolutionFiles文件夾里,創(chuàng)建一個(gè)Grant.sql文件,復(fù)雜下面的代碼到該文件中,保存并關(guān)閉:

      IF NOT EXISTS (SELECT name FROM sys.server_principals WHERE name = 'IIS APPPOOL\DefaultAppPool')
      BEGIN
      CREATE LOGIN [IIS APPPOOL\DefaultAppPool]
      FROM WINDOWS WITH DEFAULT_DATABASE=[master],
      DEFAULT_LANGUAGE=[us_english]
      END
      GO

      CREATE USER [ContosoUniversityUser]
      FOR LOGIN [IIS APPPOOL\DefaultAppPool]
      GO

      EXEC sp_addrolemember 'db_datareader', 'ContosoUniversityUser'
      GO

      EXEC sp_addrolemember 'db_datawriter', 'ContosoUniversityUser'
      GO

      (注:本腳本是用在本教程的環(huán)境上,Win7+IIS+SQL2008,如果你使用不同的SQL版本,請(qǐng)參看聯(lián)機(jī)叢書(shū))

      4.  為測(cè)試環(huán)境配置數(shù)據(jù)庫(kù)部署

      前面部署數(shù)據(jù)庫(kù)的設(shè)置僅僅是復(fù)雜文件到App_Data目錄里,現(xiàn)在要使用SQL腳本,并且在目標(biāo)數(shù)據(jù)庫(kù)運(yùn)行才行。實(shí)際上,Web Deploy幫你做的就是下邊每個(gè)數(shù)據(jù)庫(kù)的部署:

      1. 創(chuàng)建一個(gè)SQL腳本,用于向目標(biāo)庫(kù)里創(chuàng)建庫(kù)結(jié)構(gòu)(表,列,約束等等)
      2. 創(chuàng)建一個(gè)SQL腳本,用于向目標(biāo)庫(kù)插入數(shù)據(jù)庫(kù)
      3. 在目標(biāo)庫(kù)里運(yùn)行這些腳本

       

      測(cè)試環(huán)境修改配置設(shè)置,打開(kāi)Project Properties窗口,選擇Package/Publish Web選項(xiàng)卡,然后在Configuration下拉菜單里選擇Active (Test)Test

      確保選擇了Exclude files from the App_Data folder項(xiàng),Web Deploy會(huì)讀取App_Data目錄下的.sdf文件,然后在SQL Server Express數(shù)據(jù)庫(kù)里創(chuàng)建表和相應(yīng)的數(shù)據(jù),但是不需要將他們復(fù)雜到目標(biāo)站點(diǎn)。

      確保選擇了Include all databases configured in Package/Publish SQL項(xiàng), The Package/Publish SQL選項(xiàng)卡就是你配置SQL Server Express設(shè)置的地方。盡管選擇了這個(gè)checkbox,但是因?yàn)槟阍赑ackage/Publish SQL選項(xiàng)卡沒(méi)選擇任何一個(gè)數(shù)據(jù)庫(kù),所以沒(méi)有任何影響。

       

      選擇Package/Publish SQL選項(xiàng)卡,設(shè)置build配置為Test,點(diǎn)擊Import from Web.config

       

      Visual Studio會(huì)自動(dòng)查找Web.config文件的連接字符串,找到了 membership 數(shù)據(jù)庫(kù)和School數(shù)據(jù)庫(kù),并且在Database Entries表里添加了2行記錄。下一步要做的就是如何部署這些數(shù)據(jù)庫(kù), Database Entries表下面的Database Entry Details 面板會(huì)顯示詳細(xì)的信息,每選擇一個(gè)數(shù)據(jù)庫(kù),下面都會(huì)顯示該數(shù)據(jù)庫(kù)的部署配置信息。

       

       

      配置Membership 數(shù)據(jù)庫(kù)的部署設(shè)置

      Database Entries里選擇DefaultConnection-Deployment行,以便顯示membership庫(kù)的配置信息。

      Connection string for destination database里輸入新SQL Server Express membership數(shù)據(jù)庫(kù)的連接字符串(你可以通過(guò)Server Explorer-> Data Connections-> aspnetTest-> Properties窗口里的Connection String來(lái)獲取)。

       

      復(fù)制連接字符串到Package/Publish SQL 選項(xiàng)卡里的Connection string for destination database 框里。

      Data Source=.\SQLExpress;Initial Catalog=aspnetTest;Integrated Security=True;Pooling=False

       

      確保選擇了Pull data and/or schema from an existing database項(xiàng),它會(huì)生產(chǎn)腳本以便在目標(biāo)數(shù)據(jù)庫(kù)自動(dòng)創(chuàng)建。

       Connection string for the source database值是從Web.config文件里獲取的,指向是開(kāi)發(fā)用的SQL Server Compact數(shù)據(jù)庫(kù),他是用來(lái)生產(chǎn)腳本,然后在目標(biāo)庫(kù)運(yùn)行的,因?yàn)槭且渴鹕a(chǎn)環(huán)境數(shù)據(jù)庫(kù),所以要把名字從"aspnet-Dev.sdf"改成"aspnet-Prod.sdf"。

      將Database scripting options從Schema Only改成Schema and data,因?yàn)槟愕臄?shù)據(jù)(測(cè)試賬戶(hù))也需要部署到新庫(kù)里。

      另外,你自己創(chuàng)建的賦權(quán)腳本也需要運(yùn)行,在Database Scripts框里點(diǎn)擊Add Script,然后在Select File對(duì)話框里選擇你創(chuàng)建的Grant.sql,然后點(diǎn)擊Open

       

      完成以后,Database Entries表里的DefaultConnection-Deployment的設(shè)置應(yīng)該是這樣的:

       

       

      配置School 數(shù)據(jù)庫(kù)的部署設(shè)置

      接下來(lái),選擇SchoolContext-Deployment行,以配置School數(shù)據(jù)庫(kù)。

      同樣的方式需要設(shè)置連接字符串到Connection string for destination database 框里。

      Data Source=.\SQLExpress;Initial Catalog=SchoolTest;Integrated Security=True;Pooling=False

      確保選擇了Pull data and/or schema from an existing database項(xiàng)。

      Connection string for the source database值是從Web.config文件里獲取的,指向是開(kāi)發(fā)用的SQL Server Compact數(shù)據(jù)庫(kù),他是用來(lái)生產(chǎn)腳本,然后在目標(biāo)庫(kù)運(yùn)行的,因?yàn)槭且渴鹕a(chǎn)環(huán)境數(shù)據(jù)庫(kù),所以要把名字從" School -Dev.sdf"改成" School -Prod.sdf"。

      修改Database scripting optionsSchema and data

      也需要為數(shù)據(jù)庫(kù)賦予讀寫(xiě)權(quán)限,所以也需要添加Grant.sql腳不能文件。

      完成以后,Database Entries表里的SchoolContext -Deployment的設(shè)置應(yīng)該是這樣的:

       

      最后,在Package/Publish SQL選項(xiàng)卡上保存修改。

       

      為賦權(quán)腳本設(shè)置Transacted Mode

      部署過(guò)程中,會(huì)自動(dòng)生產(chǎn)腳本以便部署schema和數(shù)據(jù),默認(rèn)情況下,這些腳本是在一個(gè)事務(wù)里運(yùn)行的,但自定義的腳本(想賦權(quán)腳本)默認(rèn)不在事務(wù)里運(yùn)行,如果部署存在混合事務(wù)模式的話,就有可能出現(xiàn)超時(shí)的情況,,本章節(jié)將指導(dǎo)你如何設(shè)置自定義腳本文件也在一耳光事務(wù)里運(yùn)行。

      在Solution Explorer,右鍵ContosoUniversity項(xiàng)目,選擇Unload Project。

       

      然后重新右鍵該項(xiàng)目,選擇Edit ContosoUniversity.csproj。

       

      Visual Studio編輯器會(huì)顯示項(xiàng)目文件的XML內(nèi)容。注意到里面有很多PropertyGroup元素(下圖里省略了一些)。

       

      第一個(gè)沒(méi)有Condition 實(shí)現(xiàn),它的設(shè)置和build配置無(wú)關(guān),另外幾個(gè),有一個(gè)是Debug用的,一個(gè)是 Release用的,另外一個(gè)是Test用的,注意到,Test的這個(gè)PropertyGroup 元素里面,有個(gè)元素叫PublishDatabaseSettings,是你在Package/Publish SQL選項(xiàng)卡里設(shè)置的內(nèi)容:

       

      注意到上圖標(biāo)記的紅色框,在Object里的Source元素是指向了你配置的自定義文件,他的Transacted屬性值是False,這個(gè)就是設(shè)置事務(wù)模式的,你需要將它設(shè)置為T(mén)rue,設(shè)置應(yīng)該是這樣的:

       

      保存關(guān)閉項(xiàng)目文件,然后右鍵解決方案里的項(xiàng)目,選擇重新Reload Project。

       

      5.  為測(cè)試庫(kù)的連接字符串創(chuàng)建Web.Config Transform

      Package/Publish SQL 里為SQL Express數(shù)據(jù)庫(kù)設(shè)置的連接字符串只是為Web Deploy更新目標(biāo)數(shù)據(jù)庫(kù)用的,程序用到的連接字符串還是需要在Web.config文件里重新設(shè)置的(通過(guò)之前將的Transform)。

      打開(kāi)Web.Test.config文件,connectionStrings元素替換成如下代碼:

      <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
      <connectionStrings>
      <add name="DefaultConnection"
      connectionString
      ="Data Source=.\SQLExpress;Initial Catalog=aspnetTest;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True"
      providerName
      ="System.Data.SqlClient"
      xdt:Transform
      ="SetAttributes" xdt:Locator="Match(name)"/>
      <add name="SchoolContext"
      connectionString
      ="Data Source=.\SQLExpress;Initial Catalog=SchoolTest;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True"
      providerName
      ="System.Data.SqlClient"
      xdt:Transform
      ="SetAttributes" xdt:Locator="Match(name)"/>
      </connectionStrings>
      <!-- appSettings element, comments, and system.web element -->
      </configuration>

       

      最終部署結(jié)果是在Web.config 里,connectionString元素里每個(gè)add元素的providerName屬性被替換成上述代碼。這個(gè)和Package/Publish SQL選項(xiàng)卡里的是不一樣的。另外字符串里添加上MultipleActiveResultSets=True,是因?yàn)檫@是Entity Framework和Universal Providers所必須的設(shè)置。

      6.  部署到測(cè)試環(huán)境

      現(xiàn)在已經(jīng)準(zhǔn)備好開(kāi)始部署到測(cè)試環(huán)境了。

      Solution Configurations下拉框里選擇TestPublish profile里選擇Test,然后點(diǎn)擊Publish Web。(如果你自定義了你的Visual Studio使這些工具欄的這些設(shè)置不能用的話,請(qǐng)參考第8章的內(nèi)容)

       

      Visual Studio部署了修改后的程序,并在Output窗口顯示了成功信息。

       

      運(yùn)行程序,重新測(cè)試,添加一個(gè)student來(lái)驗(yàn)證數(shù)據(jù)庫(kù)更新操作十分正常,再訪問(wèn)Update Credits頁(yè)面(需要登錄)來(lái)驗(yàn)證membership數(shù)據(jù)庫(kù)是否工作正常。

      7.  為生產(chǎn)環(huán)境創(chuàng)建SQL Server數(shù)據(jù)庫(kù)

      測(cè)試環(huán)境部署并測(cè)試以后,可以向生產(chǎn)環(huán)境部署了。注意本章節(jié)前面的內(nèi)容提到了Cytanium 只允許創(chuàng)建運(yùn)行一個(gè)數(shù)據(jù)庫(kù),所以我們需要將2個(gè)數(shù)據(jù)庫(kù)的所有內(nèi)容都合并到一個(gè)新的數(shù)據(jù)庫(kù)里。

      進(jìn)入Cytanium控制面板,鼠標(biāo)移動(dòng)到Databases上,然后選擇SQL Server 2008

       

      SQL Server 2008頁(yè)面,點(diǎn)擊Create Database

       

      輸入數(shù)據(jù)庫(kù)名為"School"然后點(diǎn)擊Save保存。程序自動(dòng)添加contosou前綴,所以你的真正數(shù)據(jù)庫(kù)名字是contosouSchool。

       

      同一頁(yè)面,點(diǎn)擊Create User,在Cytanium's服務(wù)器上創(chuàng)建的是混合賬戶(hù),而不是平時(shí)用到的系統(tǒng)集成賬戶(hù)。你需要修改Web.config文件的連接字符串里的賬戶(hù)信息。這個(gè)步驟,你將創(chuàng)建一個(gè)用戶(hù)。

       

      在SQL User Properties 頁(yè)面輸入必填項(xiàng):

          輸入用戶(hù)名: ContosoUniversityUser

          輸入密碼:Pas$w0rd.

      選擇contosouSchool作為默認(rèn)數(shù)據(jù)庫(kù)

      選擇contosouSchool check box

       

      8.  為生產(chǎn)環(huán)境創(chuàng)建配置數(shù)據(jù)庫(kù)部署

      現(xiàn)在可以來(lái)想配置測(cè)試環(huán)境一樣,來(lái)設(shè)置Package/Publish WebPackage/Publish SQL里的參數(shù)了。

      打開(kāi)Project Properties窗口,選擇Package/Publish Web選項(xiàng)卡,然后在Configuration下拉菜單里選擇Active (Release)Release

      確保選擇了Exclude files from the App_Data folder項(xiàng).,數(shù)據(jù)庫(kù)部署不需要復(fù)制App_Data文件夾里的內(nèi)容,僅僅是在目標(biāo)庫(kù)生成并運(yùn)行腳本。

      確保選擇了Include all databases configured in Package/Publish SQL tab項(xiàng)。

       

      選擇Package/Publish SQL選項(xiàng)卡,設(shè)置build配置為Release,和測(cè)試環(huán)境一樣點(diǎn)擊Import from Web.config。可以看到2行記錄被添加到Database Entries表里了。

       

      在為每個(gè)數(shù)據(jù)庫(kù)設(shè)置部署參數(shù)的時(shí)候,與測(cè)試環(huán)境的設(shè)置唯一不同的是:測(cè)試環(huán)境需要設(shè)置2個(gè)不同的連接字符串,而生成環(huán)境需要設(shè)置相同的連接字符串,因?yàn)樗鼈兪潜徊渴鸬揭粋€(gè)生成環(huán)境數(shù)據(jù)庫(kù)上的。

       

      配置Membership 數(shù)據(jù)庫(kù)部署設(shè)置

      選擇Database Entries 表里的DefaultConnection-Deployment 行來(lái)設(shè)置membership 數(shù)據(jù)庫(kù)的部署信息。

      在Connection string for destination database里輸入執(zhí)行剛剛創(chuàng)建的生成環(huán)境數(shù)據(jù)庫(kù)的連接字符串信息(你可以從歡迎郵件里得到)。郵件里的地址和下面的類(lèi)似:

      Data Source=vserver01.cytanium.com;Initial Catalog={myDataBase};User Id={myUsername};Password={myPassword};

      替換3個(gè)變量以后,字符串變成了:

      Data Source=vserver01.cytanium.com;Initial Catalog=contosouSchool;User Id=ContosoUniversityUser;Password=Pas$w0rd;

       

      復(fù)制connection string到Package/Publish SQL里的Connection string for destination database里。

      確保選擇了Pull data and/or schema from an existing database項(xiàng)

      Connection string for the source database值是從Web.config文件獲取的,指向了App_Data目錄下的SQL Server Compact數(shù)據(jù)庫(kù),修改aspnet-Dev.sdfaspnet-Prod.sdf

      Database scripting options項(xiàng)修改為Schema and data

      完成以后,DefaultConnection-Deployment的設(shè)置應(yīng)該是這樣的:

       

       

      配置School 數(shù)據(jù)庫(kù)的部署設(shè)置

      接下來(lái),選擇SchoolContext-Deployment來(lái)配置School數(shù)據(jù)庫(kù)的設(shè)置。

      復(fù)制同樣的connection string(在上面membership設(shè)置里)到Connection string for destination database

      確保選擇了Pull data and/or schema from an existing database項(xiàng),Connection string for the source database的值是從Web.config文件獲取的, 指向的是開(kāi)發(fā)庫(kù),修改School-Dev.sdfSchool-Prod.sdf

      Database scripting options項(xiàng)修改為Schema and data

      完成以后,SchoolContext-Deployment的設(shè)置應(yīng)該是這樣的:

       

      保存Package/Publish SQL 選項(xiàng)卡上的修改。

      9.  為生產(chǎn)庫(kù)的連接字符串創(chuàng)建Web.Config Transform

      為了讓Web.config里的數(shù)據(jù)庫(kù)連接地址指向新的生產(chǎn)環(huán)境數(shù)據(jù)庫(kù),你修改重新設(shè)置Web.config的transfermation。連接地址和Package/Publish SQL選項(xiàng)卡里的地址是幾乎一樣的,唯一的區(qū)別是添加了一個(gè)MultipleResultSets選項(xiàng)。

      打開(kāi)Web.Release.config替換如下的內(nèi)容到connectionStrings元素節(jié)點(diǎn):

      <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
      <connectionStrings>
      <add name="DefaultConnection"
      connectionString
      ="Data Source=vserver01.cytanium.com;Initial Catalog=contosouSchool;User Id=ContosoUniversityUser;Password=Pas$w0rd;MultipleActiveResultSets=True"
      providerName
      ="System.Data.SqlClient"
      xdt:Transform
      ="SetAttributes" xdt:Locator="Match(name)"/>
      <add name="SchoolContext"
      connectionString
      ="Data Source=vserver01.cytanium.com;Initial Catalog=contosouSchool;User Id=ContosoUniversityUser;Password=Pas$w0rd;MultipleActiveResultSets=True"
      providerName
      ="System.Data.SqlClient"
      xdt:Transform
      ="SetAttributes" xdt:Locator="Match(name)"/>
      </connectionStrings>
      <!-- appSettings element, comments, and system.web element -->
      </configuration>

       

      有時(shí)候,你可以看到一些建議,要對(duì)Web.config 文件里的connection strings進(jìn)行加密,那是因?yàn)槟愕姆?wù)器是放在自己公司里的,部署到虛擬主機(jī)上話,你要充分信任主機(jī)提供商的安全保護(hù)能力呦。

      10.    部署到生產(chǎn)環(huán)境

      現(xiàn)在可以向生產(chǎn)環(huán)境部署了,部署過(guò)程將讀取App_Data 文件夾下的SQL Server Compact 數(shù)據(jù)庫(kù)文件,然后在生產(chǎn)環(huán)境數(shù)據(jù)庫(kù)里重新創(chuàng)建所有的表和數(shù)據(jù)。

      在部署之前,確保上傳了app_offline.htm文件,原因參考第7章內(nèi)容。

       

      首先要通過(guò)Cytanium 控制面板里的File Manager 功能將aspnet-Prod.sdf和School-Prod.sdf備份到開(kāi)發(fā)環(huán)境里的App_Data目錄,確保再次向生產(chǎn)環(huán)境部署的數(shù)據(jù)是最新的。

      Solution Configurations下拉框里選擇ReleasePublish profile里選擇Release,然后點(diǎn)擊Publish Web。(如果你自定義了你的Visual Studio使這些工具欄的這些設(shè)置不能用的話,請(qǐng)參考第8章的內(nèi)容)

      Visual Studio部署了修改后的程序,并在Output窗口顯示了成功信息。

       

      測(cè)試之前,需要先刪除app_offline.htm文件,與此同時(shí)也可以刪除App_Data目錄下的sdf文件。

       

      運(yùn)行程序,重新測(cè)試,添加一個(gè)student來(lái)驗(yàn)證數(shù)據(jù)庫(kù)更新操作十分正常,再訪問(wèn)Update Credits頁(yè)面(需要登錄)來(lái)驗(yàn)證membership數(shù)據(jù)庫(kù)是否工作正常。

      11.    開(kāi)發(fā)環(huán)境切換到SQL Server Express

      綜述里介紹的內(nèi)容,開(kāi)發(fā)的時(shí)候最好使用和測(cè)試、生產(chǎn)環(huán)境同樣的數(shù)據(jù)庫(kù)(還記得上面說(shuō)的SQL Server Express和完整版SQL Server是一樣功能么?)。本小節(jié)我們將設(shè)置ContosoUniversity項(xiàng)目使用SQL Server Express。

      最簡(jiǎn)單的方式是讓Code First和membership system來(lái)幫你創(chuàng)建新數(shù)據(jù)庫(kù):

      n  修改connection strings來(lái)指定新的SQL Express數(shù)據(jù)庫(kù)

      n  允許程序, Code First會(huì)自動(dòng)創(chuàng)建程序數(shù)據(jù)庫(kù)

      n  點(diǎn)擊登錄,并注冊(cè)一個(gè)測(cè)試賬戶(hù),ASP.NET membership系統(tǒng)會(huì)自動(dòng)幫你創(chuàng)建membership數(shù)據(jù)庫(kù)

      不過(guò),如果你有很多測(cè)試賬戶(hù)需要?jiǎng)?chuàng)建的話,你肯定不想手工輸入,可以將SQL Server Compact的數(shù)據(jù)遷移到SQL Server Express閃個(gè),如果你想這么做,那請(qǐng)繼續(xù),如果不想這么多,請(qǐng)忽略這一章節(jié),繼續(xù)訪問(wèn):為Web.config文件更新Connection String

       

      創(chuàng)建開(kāi)發(fā)環(huán)境Membership數(shù)據(jù)庫(kù)

      View菜單選擇Server Explorer,右鍵Data Connections選擇Create New SQL Server Database

      Create New SQL Server Database對(duì)話框, Server name 里輸入.\SQLExpressNew database name框里輸入aspnetDev,點(diǎn)擊OK確定。

       

      配置數(shù)據(jù)庫(kù)部署

      現(xiàn)在需要為新數(shù)據(jù)庫(kù)配置部署設(shè)置了,無(wú)需修改現(xiàn)在有的測(cè)試環(huán)境設(shè)置,你可以建立一個(gè)新的Build配置,以Test Build配置為基礎(chǔ)取名為MigrateToSQLExpress

      從Visual Studio的Build菜單,選擇Configuration Manager彈出Configuration Manager對(duì)話框:

       

      Active solution configuration框里選擇NewNew Solution Configuration 對(duì)話框出現(xiàn)以后,為新build配置輸入新名稱(chēng)MigrateToSQLExpress,然后選擇從Test復(fù)制設(shè)置。選擇Create new project configurations點(diǎn)擊OK

       

      打開(kāi)Project Properties窗口,選擇Package/Publish Web選項(xiàng)卡,Configuration下拉框里選擇Active (MigrateToSQLExpress),選擇Exclude files from the App_Data folder并確保選中Include all databases configured in Package/Publish SQL tab

      選擇Package/Publish SQL選項(xiàng)卡,設(shè)置build配置為Active(MigrateToSQLExpress),點(diǎn)擊Import from Web.config

      Database Entries表里,取消選擇SchoolContext-Deployment(因?yàn)椴恍枰渴餝chool數(shù)據(jù)庫(kù))。然后選擇DefaultConnection-Deployment來(lái)配置membership 數(shù)據(jù)庫(kù)的設(shè)置。

      Connection string for destination database里,輸入下面列出的connection string,它指向你剛為開(kāi)發(fā)環(huán)境創(chuàng)建的新SQL Server Express membership數(shù)據(jù)庫(kù)。

      Data Source=.\SQLExpress;Initial Catalog=aspnetDev;Integrated Security=True;Pooling=False;

       

      確保選擇了Pull data and/or schema from an existing database項(xiàng),

       Connection string for the source database的值來(lái)自Web.config文件,它指向原來(lái)的開(kāi)發(fā)環(huán)境SQL Server Compact membership數(shù)據(jù)庫(kù)。將Database scripting options 的項(xiàng)從Schema Only修改為Schema and Data

       

       

      保存Package/Publish SQL里的修改。

       

      部署到測(cè)試環(huán)境

      Solution Configurations下拉框里選擇MigrateToSQLExpress build配置, Publish profile下拉框里選擇Test,然后點(diǎn)擊Publish Web。(如果你自定義了你的Visual Studio使這些工具欄的這些設(shè)置不能用的話,請(qǐng)參考第8章的內(nèi)容)

      Visual Studio部署了修改后的程序,并在Output窗口顯示了成功信息。

       

      修改Web.config 里的Connection Strings

      打開(kāi)Web.config文件,替換下面的代碼到connectionStrings元素節(jié)點(diǎn):

      <connectionStrings>
      <add name="DefaultConnection" connectionString="Data Source=localhost\SQLExpress;Initial Catalog=aspnetDev;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient"/>
      <add name="SchoolContext" connectionString="Data Source=localhost\SQLExpress;Initial Catalog=SchoolDev;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient"/>
      </connectionStrings>

       

      Control-F5運(yùn)行,和測(cè)試、生產(chǎn)環(huán)境一樣,添加一個(gè)student驗(yàn)證數(shù)據(jù)庫(kù)是否能正常工作。

       

      如果按照上面的步驟遷移了用戶(hù)數(shù)據(jù),訪問(wèn)Update Credits頁(yè)面來(lái)驗(yàn)證部署是否正確,如果沒(méi)有的話,創(chuàng)建一個(gè)administrator賬戶(hù)然后訪問(wèn)Update Credits頁(yè)面來(lái)驗(yàn)證。

      12.    清除SQL Server Compact文件

      現(xiàn)在,不在需要支持SQL Server Compact 的數(shù)據(jù)庫(kù)文件和NuGet包了,如果你原因,可以刪除這些不必要的文件(不強(qiáng)求)。

      Solution Explorer里刪除App_Data目錄下的.sdf文件(amd64x86子目錄)。

      Solution Explorer里,右鍵ContosoUniversity項(xiàng)目選擇Add Library Package Reference,在Add Library Package Reference對(duì)話框里選擇EntityFramework.SqlServerCompact包并點(diǎn)擊Uninstall

       

       

      卸載成功以后,同樣的方式也卸載SqlServerCompact包(必須卸載,因?yàn)?strong>EntityFramework.SqlServerCompact依賴(lài)于它)。

      同樣的步驟,刪除ContosoUniversity.DAL項(xiàng)目里的這2個(gè)包。

      最后,可以MigrateToSqlExpress Build配置了,因?yàn)樗鼉H僅是為遷移數(shù)據(jù)而準(zhǔn)備的。Build菜單里選擇Configuration Manager,在彈出的Configuration Manager對(duì)話框里,Active solution configuration下拉菜單里選擇Edit,在Edit Solution Configurations對(duì)話框里選擇MigrateToSQLExpress,然后點(diǎn)擊Remove

       

      現(xiàn)在已經(jīng)成功將數(shù)據(jù)庫(kù)遷移至SQL Server Express和完整版SQL Server,下一章節(jié),將做另外一處數(shù)據(jù)庫(kù)修改,然后在測(cè)試、生產(chǎn)環(huán)境使用SQL Server Express和完整版SQL Server的時(shí)候,如何部署這些修改。

      主站蜘蛛池模板: 国产一区二区三区四区激情| 国产乱国产乱老熟300部视频| 亚洲国产精品无码一区二区三区| 亚洲天堂网色图伦理经典| 无码专区一va亚洲v专区在线| 亚洲av男人电影天堂热app| 欧美寡妇xxxx黑人猛交| 999国产精品999久久久久久| 久久精品国产亚洲AV麻| 北条麻妃一区二区三区av高清| 国产在线观看91精品亚瑟| 99精品国产在热久久无| 精品无码国产自产拍在线观看| 亚洲国产美女精品久久久| 在线天堂中文新版www| 国产一区二区日韩在线| 无线日本视频精品| 亚洲精品成人久久av| 国内久久人妻风流av免费| 欧美怡春院一区二区三区| 国产精品无码a∨麻豆| 国产日产免费高清欧美一区 | 中文字幕乱码一区二区免费| 日本不卡一区| 国产午夜精品理论大片| 国产老妇伦国产熟女老妇高清| 中文字幕无码不卡在线| 久久99精品国产99久久6尤物| 国产综合色一区二区三区| 一区二区三区av天堂| 天堂V亚洲国产V第一次| 亚洲av肉欲一区二区| 午夜精品久久久久久99热| 国产在线观看免费观看不卡| 无码人妻精品一区二区三区夜夜嗨| 春色校园综合人妻av| 亚洲国产综合av在线观看| 国产永久免费高清在线观看 | 最新的精品亚洲一区二区| 精品素人AV无码不卡在线观看| 国产又色又爽又黄的视频在线|