Visual Studio 2012
-
Visual Studio Express 2012 for Web
-
與 的Visual Studio 2010 Visual Studio Web發布更新
-
與 的Visual Web Developer 2010 Express Visual Studio Web發布更新
您可以部署到任何以下目標:
-
對於承載提供程序。
-
對於在開發計算機上的IIS作為一個測試環境。
-
到公司的內部網絡上的服務器。
使用 發布 Web 向導,若要配置 Web 應用程序項目的部署在Visual Studio中,可以創建一個或多個 發布配置文件。 發布配置文件中指定要部署到的服務器,必需的憑據登錄到服務器,部署的數據庫和其他部署選項。 當您准備好發布時,可以選擇要使用並單擊 發布 按鈕在向導或在 Web一鍵式發布 工具欄的配置文件。
部署網站通常需要除了創建配置文件之外的其他准備工作。 本主題不包括有關可能需要執行的其他任務的信息。 例如,指定生成和合並選項在 打包/發布 Web 選項,不在發布配置文件。
創建發布配置文件
許多宿主提供程序提供可用於簡化創建發布配置文件處理的一個.publishsettings文件。 如果使用.publishsettings文件,請確保您具有最新版本,則此開始之前。 (例如,因此,如果您最初創建了一個帳戶,不用SQL Server數據庫稍后添加的代碼,您必須下載該.publishsettings的最新版本,以確保它包含連接字符串需要。)
創建發布配置文件
-
在 解決方案資源管理器,請右擊該項目並選擇 發布 打開 發布 Web 向導。
如果尚未創建任何配置文件,該向導在 配置文件 選項卡中打開。 否則,它會 預覽 選項卡中打開。 在這種情況下,創建一個新的配置文件必須先單擊 配置文件 選項。
注意到 配置文件 選項的 管理配置文件 按鈕。 在創建了一個配置文件之后,可以使用此按鈕重命名或刪除其重命名為。
-
執行以下過程之一,具體取決於您是否具有一個.publishsettings文件:
通過導入.publishsettings文件創建配置文件
-
單擊“導入”。
導入發布設置 對話框打開。
-
選擇.publishsettings文件,然后單擊 打開。
創建配置文件,而不.publishsettings文件
-
在的 選擇或導入一個發布配置文件 下拉列表中,選擇 <New …>,然后輸入一個名稱該配置文件在 新建配置文件 對話框。
-
配置連接選項
發布 Web 向導自動前進到 連接 選項。
如果使用了一個.publishsettings文件,此選項卡上的字段已填充。 在這種情況下,請跳過此過程和 驗證連接。
配置連接選項
-
選擇一個值。發布方法 列表。
因為它可以自動化大大小部署任務,Web Deploy為建議的發布方法。 但是,在此選擇方案之前,請確保部署的承載提供程序或服務器支持Web部署。
如果選擇Web部署,並且您本身是發布到測試的IIS計算機,則必須在計算機上具有管理權限,並且,Visual Studio必須運行在控制器模式。 (打開Visual Studio在控制器模式下,右擊在Windows 開始 菜單的Visual Studio圖標並選擇 以管理員身份運行。)
如果選擇Web部署,並且您本身是發布到web服務器,確保服務器為Web部署代理服務(MSDepSvc,遠程代理服務)設置為,因此,您在目標服務器上具有管理權限。
屏幕快照和大多數本主題中的步驟假定,您選擇了Web Deploy發布方法。 如果要部署到不支持Web的承載提供程序將部署,可以選擇FTP。 在這種情況下,命令的某些以下步驟會有所不同。 服務 URL 和 站點/應用程序 字段中 目標位置 字段交換,則輸入FTP或FTPS URL。 如果匿名登錄,允許您不需要輸入用戶名和密碼。 如果需要被動模式,請編輯發布配置文件(.pubxml)文件並更改 FtpPassiveMode 元素的值設置為 true。
一個 發布方法 選項是 Web部署包。
-
在 服務 URL 框中,輸入Web Deploy可以使用發布應用程序的URL。
如果要發布到托管公司,該公司提供此值。 它可以是任何以下格式:
-
托管公司 URL(例如,contoso.com)
-
https:// HostingCompanyURL (例如,https://contoso.com)
-
https:// HostingCompanyURL :8172/msdeploy.axd (例如,https://contoso.com:8172/msdeploy.axd)
如果本身是發布到測試的IIS計算機,輸入 localhost 或您的計算機的名稱。
如果本身是發布到web服務器,請輸入以下URL之一:
-
http:// ServerName
-
http:// 服務器名稱 /msdeployagentservice
-
-
在 站點/應用程序 框中,輸入IIS網站和應用程序的名稱。
如果要發布到托管公司,該公司提供此值。 它通常是域名(例如,contoso.com)或域和應用程序名稱(例如,contoso.com/MyApplication)。
如果本身是發布到測試的IIS計算機,也可以連接到您的內部網絡上的服務器,請輸入網站和應用程序名稱,則會在 IIS 管理器。 例如,因此,如果要發布到IIS的默認網站,並且,如果應用程序名稱為MyApplication,輸入默認網站/myapplication "。
-
在 用戶名 和 密碼 框中,輸入具有執行足夠的權限在目標web服務器的部署任務的帳戶憑據。
如果要發布到托管公司,該公司提供這些值。
-
如果不希望在每次提示您輸入密碼您發布,選擇 保存密碼 復選框。
密碼在PublishProfiles文件夾的一.pubxml.user文件已加密並存儲。 如果使用源代碼管理,默認情況下該文件從源代碼管理中排除。
-
如果希望Visual Studio中部署的應用程序的URL自動打開您的默認瀏覽器,在部署完成之后,輸入URL。目標URL 框。
驗證在連接選項卡上的設置
-
單擊 驗證連接 驗證您能夠建立與服務器的連接使用您輸入的設置。
-
如果您看到 證書錯誤 對話框中,確保要發布到正確的URL (檢查 服務 URL 和在 證書錯誤 對話框的服務器名稱)。 如果設置是否正確,請選擇 保存Visual Studio以后的會話的此證書,這樣您就獲得相同的錯誤消息,然后選擇 接受證書。 (此錯誤意味着承載提供程序選擇避免購買要部署的URL的SSL證書成本。 使用有效證書,如果您希望生成一個安全連接,請聯系您的承載提供程序。)
如果Visual Studio無法生成連接,請確保沒有從您的計算機防止連接(例如set代理或的firewall),然后重試。 如果仍無法進行連接、聯系人承載提供程序或維護目標服務器的人員。
配置設置選項
在 連接 選項卡上,單擊前進到 設置 選項的 下一步。
配置設置選項
-
在的 配置 下拉列表中,選擇生成配置部署。
通常部署發布版本。 調試版本沒有效地運行且通常處於選中狀態,只有在部署到測試環境時,您將在該環境中需要調試。
-
如果要刪除沒有匹配的文件在計算機的web項目在目標服務器上的文件,選擇 刪除其他文件在目標 復選框。
警告
如果選擇此選項,請確保您使用預覽功能,以便文件要刪除的您事先看到,在部署之前。 所需的行為是Web Deploy將刪除可以在您的項目已刪除的目標服務器的文件。 但是,在源文件夾和目標文件夾下的整個文件夾結構進行比較,所以,並且Web Deploy某些情況下可能刪除不要移除的文件。
例如,因此,如果您有一個 Web 應用程序在服務器的子文件夾,當您將項目部署到根文件夾,子文件夾中刪除。 您可能有主站點中的一個項目。contoso.com 和博客上的另一個項目。contoso.com/blog。 博客應用程序位於子文件夾中。 如果選擇 刪除其他文件在目標,當您部署主站點,博客應用程序將被刪除。
到另一個示例,您的App_Data文件夾可能會意外刪除。 某些數據庫(如SQL Server compact存儲在App_Data文件夾中的數據庫文件。 在后面的部署不想保留這樣將數據庫文件復制您在中選擇 打包/發布 Web 選項的 排除App_Data 的初始部署之后。 在執行后,因此,如果您有 刪除其他文件在目標 時,您的數據庫文件和App_Data文件夾中刪除,下次發布。
在安裝選項的配置數據庫
設置 選項的 數據庫 部分沒有為FTP,文件系統顯示,並且,FPSE發布方法。 如果選擇了這些方法之一,則跳過下面的過程並手動部署數據庫。
如果選擇了Web Deploy發布方法,您在項目中使用的每個數據庫看到一項。 此圖顯示使用兩個數據庫的項目。
如果您的項目所使用的數據庫缺少,請確保您具有的Web.config文件中的連接字符串。 設置 選項列表將確定的由Web.config文件中的連接字符串或者是由實體框架代碼的第一個上下文選件類的數據庫。
說明
如果清除 包括在“打包/發布 SQL”選項卡中配置的所有數據庫 復選框,數據庫中輸入的部署在此處設置不起作用。
執行中顯示列表中的每個數據庫的下列程序。
配置在安裝選項的數據庫
-
在連接字符串框中,選擇或輸入指向目標數據庫的連接字符串。
組合框包含連接字符串在.publishsettings文件(如果使用的創建該配置文件),從其他線程將在項目的配置文件和從的數據庫具有訪問在 服務器資源管理器。 可以選擇其中一個,手動輸入連接字符串或者單擊省略號打開 目標連接字符串 對話框。
如果連接字符串是由實體框架數據庫或設計首先獲取首先的數據庫,不要指定連接字符串的完整entity framework版本示。 Visual Studio將使用您輸入此處執行部署的連接字符串,則在部署的Web.config文件構造entity framework連接字符串中。
-
如果不希望訪問由應用程序在運行時使用的連接字符串,清除 使用此連接字符串在運行時 復選框。
當 使用此連接字符串在運行時 復選框后,部署過程更改此數據庫的連接字符串在部署的Web.config文件中對組合框中的值。 在大多數情況下是正確的選擇,但是,在某些情況下可能希望應用程序連接到數據庫使用受限權限。 在這種情況下,清除此復選框和創建更改在部署的Web.config文件中的連接字符串到的一個Web.config轉換所需它是在運行時。
-
如果使用entity framework代碼的第一個上下文選件類訪問數據庫,可以使用 第一個代碼遷移 部署數據庫和更新到數據庫架構。 為此,請選擇 執行第一個代碼遷移(在應用程序啟動時運行)。
當您使用第一個代碼遷移部署數據庫時,未完成該數據庫在實際部署過程。 但是,部署在目標網站處理更新Web.config文件,以便第一個代碼遷移使用 MigrateDatabaseToLatestVersion 初始值設定項選件類。 當訪問數據庫的應用程序第一次在部署,遷移后自動創建數據庫或更新數據庫架構與最新版本。 如果應用程序執行遷移 Seed 方法,運行該方法時,將在數據庫中創建后或更新架構。
說明
如果應用程序在中等信任在部署(為true的大多數第三方承載提供程序)的環境中運行,請確保使用entity framework 5版或更高版本。 E-F 4.3和發行版本的E-F 5要求完全信任使數據庫架構更新。 在面向ASP.NET 4及更高版本的項目中使用E-F 5。
如果已經實現 DbMigrationsConfiguration 選件類,才能使用此選項。 如果錯誤消息指示 DbMigrationsConfiguration 選件類個,必須啟用第一個代碼遷移,才能完成配置數據庫部署之前。
如果該項目實現多個 DbMigrationsConfiguration 有關上下文選件類類,則無法配置此數據庫的部署在發布配置文件。
在連接的憑據字符串您在連接字符串框中輸入必須表示一個管理用戶帳戶。 此連接字符串來創建數據庫,首次部署並更新數據庫架構,在部署數據庫更改時。 如果希望應用程序訪問數據庫在具有有限權限的運行時,清除 使用此連接字符串在運行時 復選框和創建指定連接字符串所需應用程序在運行時使用的一個Web.config轉換。
如果要部署SQL Server compact數據庫,屬性,並且,如果數據庫的連接字符串在Web.config文件中,必須配置Web.config轉換創建一個附加連接字符串。 它更新數據庫架構時,請第一個代碼將使用此連接字符串。 (如果不執行手動創建此連接字符串,Visual Studio會自動創建它,但是,自動創建的連接字符串具有錯誤的 providerName 值。)此轉換的XML類似於以下示例:
通過使用遷移,
-
如果不使用第一個代碼上下文選件類訪問數據庫,並且,如果它是SQL Server或SQL Server express數據庫,並且,要與應用程序一起部署數據庫,選擇 更新數據庫。
此選項使用dbDacFx Web部署提供程序。 在初始部署期間,數據庫架構創建的。 在后續部署期間,目標數據庫與源數據庫進行比較,並且,更新目標數據庫架構與源數據庫。
數據在數據庫表中未自動部署。 如果需要部署到目標數據庫,創建一個自定義數據庫腳本並將其配置為運行在部署期間,在 [自動更新架構] 腳本運行之后,如下面的步驟所述。
默認情況下,dbDacFx提供程序不會自動提交會導致數據丟失的架構更改,例如刪除列或表。 如果提供程序檢測會導致數據丟失的更改,部署失敗,並且該原因在Visual Studio 輸出 窗口中顯示。 如果此操作,請創建一個自定義腳本執行所需的更新架構,並將其配置為運行,以 [自動更新架構] 腳本運行之前,如下面的步驟所述。 為運行腳本的替代,在發布該項目之前,在部署期間,則可以連接到 SQL Server 對象資源管理器 的目標數據庫和交互地更新數據庫。
如果要部署到托管公司,請確保該托管公司讓Web deploy 3.0並在該服務器上安裝dbDacFx提供程序。
-
Web deploy 3.0和dbDacFx提供程序
此軟件只需要在目標web服務器,不在目標數據庫服務器。 如果要部署到在開發計算機上的IIS您不必安裝此軟件默認情況下,因為它隨 Visual Studio 2012、 Visual Studio Express 2012 for Web或 Visual Studio Web 發布更新。
在連接的憑據字符串您在連接字符串框中輸入必須表示一個管理用戶帳戶。 此連接字符串來創建數據庫,首次部署並更新數據庫架構,在部署數據庫更改時。 如果希望應用程序訪問數據庫在具有有限權限的運行時,清除 使用此連接字符串在運行時 復選框和創建指定連接字符串所需應用程序在運行時使用的一個Web.config轉換。
如果有多個數據庫中的項目,但是,您已部署的應用程序只想使用數據庫,您通常可以合並多個源數據庫到一個目標數據庫。 通過選擇 更新數據庫 並進入每個的相同目標連接字符串執行該源數據庫。 可以將數據庫,只要不對象名稱沖突,例如相同在多個源數據庫方面的表名。
-
-
如果選擇了 更新數據庫 在部署期間,因此,要運行自定義SQL腳本,請單擊 配置數據庫更新。
配置數據庫更新 對話框打開。
使用 將SQL腳本 鏈接向上或向下添加腳本、箭頭、更改它們的運行順序和復選框來指定個列出的腳本在部署期間,是否將運行。
標記 [自動更新架構] 的腳本將自動生成,然后運行在部署過程中更新目標數據庫的架構與源數據庫。 可以指定自定義腳本之前運行,則,或者兩個在自動腳本之前或之后運行。 在一個自定義腳本將添加之后,下圖顯示 配置數據庫更新 對話框。
-
如果數據庫是SQL Server express或在App_Data文件夾中的SQL Server compact數據庫文件,並且,如果您不希望將文件復制到目標服務器,打開 項目屬性 窗口的 打包/發布Web選項 並選擇 從App_Data文件夾中排除文件 復選框。 確保在 打包/發布 Web 選項選定的生成配置,若選擇此選項是用於部署指定在 發布 Web 向導的 設置 選項相同的一個。
-
如果數據庫是SQL Server compact數據庫,則可能還需要確保,數據庫引擎部署。
預覽更改和發布項目
在完成配置所有數據庫,單擊前進到 預覽 選項的 下一步。
預覽更改和發布項目
-
如果要查看列表文件將復制並從承載提供程序已刪除的預覽,單擊 啟動預覽。
在短等待,文件列表中出現一個選項之后。
首次發布,需要運行應用程序的所有文件復制到承載提供程序。 在發布更新,因此,只有已更改的文件復制。 (除Web.config文件中:Visual Studio無法預測哪些更改可能由轉換,並且Web部署參數,它始終這樣將Web.config文件復制。)如果選擇了 刪除其他文件在目標 選項,檢查預覽列表尤其重要,在發布之前。
-
如果您為數據庫選擇了 更新數據庫,並且希望找出將對該數據庫,請單擊該數據庫右側顯示的 預覽數據庫 鏈接。 (不能預覽部署使用entity framework第一個代碼遷移。)的更改數據庫預覽 對話框顯示在目標數據庫中運行的腳本。 如果數據庫大,它可以采用一分鍾或更長此預覽的會出現。
-
當您准備部署項目時,請單擊 發布。
-
如果您尚未驗證連接,在配置了 連接 選項,您可能會發現 證書錯誤 對話框。
當部署過程完成后,輸出 窗口指示部署是否成功。
如果輸入 目標URL 的值在 連接 選項,則默認瀏覽器對該URL打開在部署成功后。
如果部署失敗,用於錯誤消息請參見 錯誤列表 窗口。
-