天天看點

在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并部署到 IIS 服務1. 安裝 IIS 服務2. 安裝 Visual Studio Community 20193. 安裝 SQL Server Express 20144. 編譯調試 EnumSample 樣例項目5. 使用 IIS 來生産化部署該項目6. 總結7. 參考文檔

阿裡雲 NAS SMB 卷具有高可用高吞吐大容量等特點,可以很好地解決網站和資料庫項目的存儲問題。本文将介紹如何在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并把項目部署到 IIS 服務作為正式服務開放出去。使用者可以用該方案直接在 NAS SMB 卷上進行程式設計調試和網站部署,不用擔心本地盤的容量和可用性限制。

1. 安裝 IIS 服務

安裝 IIS 服務在文檔

Windows IIS 服務挂載 NAS 共享檔案存儲

中有非常詳細的叙述,使用者可以參考該文檔先安裝好 IIS 服務。

2. 安裝 Visual Studio Community 2019

可以在

Visual Studio 官網

下載下傳 Visual Studio Community 2019。安裝時記得選擇 ASP.NET 工具。

在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并部署到 IIS 服務1. 安裝 IIS 服務2. 安裝 Visual Studio Community 20193. 安裝 SQL Server Express 20144. 編譯調試 EnumSample 樣例項目5. 使用 IIS 來生産化部署該項目6. 總結7. 參考文檔

3. 安裝 SQL Server Express 2014

我們的實驗中使用的是 SQL Server Express 2014,下載下傳位址:

https://www.microsoft.com/en-in/download/details.aspx?id=42299

下載下傳時請選擇 ExpressAndTools 64BIT\SQLEXPRWT_x64_ENU.exe。

在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并部署到 IIS 服務1. 安裝 IIS 服務2. 安裝 Visual Studio Community 20193. 安裝 SQL Server Express 20144. 編譯調試 EnumSample 樣例項目5. 使用 IIS 來生産化部署該項目6. 總結7. 參考文檔

4. 編譯調試 EnumSample 樣例項目

為了友善示範如何用 Visual Studio 調試 ASP.NET + SQLServer,我們使用 ASP.NET 的一個樣例項目

EnumSample

作為示例。

4.1. 下載下傳 EnumSample 代碼

ASP.NET 樣例 Github 官網

上下載下傳整個

ASP.NET 樣例集

進而得到 EnumSample 代碼。

在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并部署到 IIS 服務1. 安裝 IIS 服務2. 安裝 Visual Studio Community 20193. 安裝 SQL Server Express 20144. 編譯調試 EnumSample 樣例項目5. 使用 IIS 來生産化部署該項目6. 總結7. 參考文檔

4.2. 将 EnumSample 檔案夾拷貝到 NAS SMB 卷上并用 Visual Studio 打開

下載下傳完代碼後解壓并找到 EnumSample 項目并将其拷貝到本機挂載的 NAS SMB 卷上。

然後用 Visual Studio 打開。

會出現如下錯誤:

在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并部署到 IIS 服務1. 安裝 IIS 服務2. 安裝 Visual Studio Community 20193. 安裝 SQL Server Express 20144. 編譯調試 EnumSample 樣例項目5. 使用 IIS 來生産化部署該項目6. 總結7. 參考文檔

原因是在 NAS SMB 卷上的 EnumSample 的 Web.config 檔案裡的 connectionString 配置錯誤。

在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并部署到 IIS 服務1. 安裝 IIS 服務2. 安裝 Visual Studio Community 20193. 安裝 SQL Server Express 20144. 編譯調試 EnumSample 樣例項目5. 使用 IIS 來生産化部署該項目6. 總結7. 參考文檔

4.3. 通過 Visual Studio 建立 SQL Server 的 LocalDb

LocalDb 是 SQL Server 的一種輕量型引擎,可以用來調試程式和進行驗證。

通過 Visual Studio 建立 LocalDb 的步驟如下:

4.3.1. Visual Studio 下選擇 視圖 -> SQLServer 對象管理器

在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并部署到 IIS 服務1. 安裝 IIS 服務2. 安裝 Visual Studio Community 20193. 安裝 SQL Server Express 20144. 編譯調試 EnumSample 樣例項目5. 使用 IIS 來生産化部署該項目6. 總結7. 參考文檔

4.3.2. 選擇一個 LocalDb ,比如 (localdb)ProjectsV13 ,右鍵點選資料庫,選擇 添加資料庫

在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并部署到 IIS 服務1. 安裝 IIS 服務2. 安裝 Visual Studio Community 20193. 安裝 SQL Server Express 20144. 編譯調試 EnumSample 樣例項目5. 使用 IIS 來生産化部署該項目6. 總結7. 參考文檔

4.3.3. 填寫資料庫名稱,比如 EnumSampleLocalDb

在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并部署到 IIS 服務1. 安裝 IIS 服務2. 安裝 Visual Studio Community 20193. 安裝 SQL Server Express 20144. 編譯調試 EnumSample 樣例項目5. 使用 IIS 來生産化部署該項目6. 總結7. 參考文檔

注意:如果想要把資料庫建立在 NAS SMB 卷上,可以參考

以 SYSTEM 身份挂載檔案卷解決 SQLServer 使用 NAS SMB 檔案卷等問題

,讓 SQLServer 可以看到 NAS SMB 檔案卷,然後再在上面添加資料庫的建立路徑中選擇 NAS SMB 盤作為存儲位置。

4.3.4. 滑鼠左鍵選擇該資料庫,然後找到右下角屬性中的 連接配接字元串(ConnectionString),替換 Web.config 中的 connectionString 整個字段即可解決之前的 SQLServer Exception

在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并部署到 IIS 服務1. 安裝 IIS 服務2. 安裝 Visual Studio Community 20193. 安裝 SQL Server Express 20144. 編譯調試 EnumSample 樣例項目5. 使用 IIS 來生産化部署該項目6. 總結7. 參考文檔

4.3.5. 再次運作 EnumSample 網站,這次就可以正常顯示網站了:

在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并部署到 IIS 服務1. 安裝 IIS 服務2. 安裝 Visual Studio Community 20193. 安裝 SQL Server Express 20144. 編譯調試 EnumSample 樣例項目5. 使用 IIS 來生産化部署該項目6. 總結7. 參考文檔

4.4. 通過 Visual Studio 建立 SQL Server 生産型資料庫并連接配接到 EnumSample 項目

LocalDb 隻是用來進行調試的資料庫。在生産環境中我們應該在 SQL Server 中建立針對生産的資料庫。步驟如下:

4.4.1. 連接配接上 SQL Server 的生産型資料庫倉庫

在 Visual Studio 中選擇 視圖 -> SQL Server 對象管理器,在 SQL Server 上選擇 添加 SQL Server,選擇 浏覽 -> 本地,然後選擇 SQL Server 安裝時建立的資料庫倉庫,比如 iZrj92ofs1q1ixZ\SQLEXPRESS。

在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并部署到 IIS 服務1. 安裝 IIS 服務2. 安裝 Visual Studio Community 20193. 安裝 SQL Server Express 20144. 編譯調試 EnumSample 樣例項目5. 使用 IIS 來生産化部署該項目6. 總結7. 參考文檔

4.4.2. 在生産型資料庫倉庫下建立資料庫,參考 4.3.2 到 4.3.5。可以看到正常顯示的網站。

4.5. 打開 SQL Server 的 IP 通路功能

直接将 DataSource= 改成 IP,1433 然後用 Visual Studio 啟動是無法連接配接資料庫的。需要參考

How do I configure SQL Server Express to allow remote tcp/ip connections on port 1433?

,将資料庫 TCP 1433 端口開放出來。

重新開機 SQL Server 服務之後再用 Visual Studio 運作 EnumSample 項目就可以了

在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并部署到 IIS 服務1. 安裝 IIS 服務2. 安裝 Visual Studio Community 20193. 安裝 SQL Server Express 20144. 編譯調試 EnumSample 樣例項目5. 使用 IIS 來生産化部署該項目6. 總結7. 參考文檔

記得将 DataSource= 改成 IP,1433

在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并部署到 IIS 服務1. 安裝 IIS 服務2. 安裝 Visual Studio Community 20193. 安裝 SQL Server Express 20144. 編譯調試 EnumSample 樣例項目5. 使用 IIS 來生産化部署該項目6. 總結7. 參考文檔

5. 使用 IIS 來生産化部署該項目

使用 IIS 配置 EnumSample 項目進行生産化部署也很簡單。添加一個網站然後路徑指向 EnumSample 的檔案夾,然後配置好使用者身份即可。

在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并部署到 IIS 服務1. 安裝 IIS 服務2. 安裝 Visual Studio Community 20193. 安裝 SQL Server Express 20144. 編譯調試 EnumSample 樣例項目5. 使用 IIS 來生産化部署該項目6. 總結7. 參考文檔

對于 IIS 服務,連接配接字元串(ConnectionString)可以用 IP,1433 的方式,也可以用機器名的方式,比如 iZrj92ofs1q1ixZ\SQLEXPRESS,作為資料庫連接配接方式。

注意,可能會出現615錯誤,

在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并部署到 IIS 服務1. 安裝 IIS 服務2. 安裝 Visual Studio Community 20193. 安裝 SQL Server Express 20144. 編譯調試 EnumSample 樣例項目5. 使用 IIS 來生産化部署該項目6. 總結7. 參考文檔

或者Cannot Drop Database 錯誤。

在 NAS SMB 卷上用 Visual Studio 調試 ASP.NET + SQLServer 項目并部署到 IIS 服務1. 安裝 IIS 服務2. 安裝 Visual Studio Community 20193. 安裝 SQL Server Express 20144. 編譯調試 EnumSample 樣例項目5. 使用 IIS 來生産化部署該項目6. 總結7. 參考文檔

這時候參考

SQL SERVER – FIX : Error : 3702 Cannot drop database because it is currently in use.

,在 SQL Server 中運作

USE Master;

GO

DROP DATABASE EnumSampleDb;

即可解決。

6. 總結

本篇文章詳細介紹了如何利用 NAS SMB 卷搭建好 ASP.NET + SQLServer 服務,叙述了如何使用 Visual Studio 調試以及如何使用 IIS 做生産部署。使用 NAS SMB 卷之後使用者再也不用擔心雲盤的存儲空間限制,服務的吞吐能力、可用性和穩定性也都會得到提高。

7. 參考文檔

7.1. Windows IIS 服務挂載 NAS 共享檔案存儲: https://help.aliyun.com/document_detail/54986.html

7.2. Visual Studio 官網: https://visualstudio.microsoft.com/vs/community/

7.3. SQL Server Express 2014 下載下傳位址:

7.4. ASP.NET EnumSample 樣例: https://github.com/aspnet/samples/tree/master/samples/aspnet/MVC/EnumSample

7.5. ASP.NET 樣例 Github 官網: https://github.com/aspnet/samples

7.6. ASP.NET 樣例集: https://github.com/aspnet/samples/archive/master.zip

7.7. 以 SYSTEM 身份挂載檔案卷解決 SQLServer 使用 NAS SMB 檔案卷等問題: https://yq.aliyun.com/articles/715687

7.8. SQL SERVER – FIX : Error : 3702 Cannot drop database because it is currently in use: https://blog.sqlauthority.com/2007/12/07/sql-server-fix-error-3702-cannot-drop-database-because-it-is-currently-in-use/