ASP.NET Core 一步步搭建我的網站(1)_環境搭建

ASP.NET Core2.0發佈有一陣子了,這是.NET 開源跨平臺的一個重大里程碑, 也意味着比1.0版本要更加成熟。目前.net core具備開源、跨平臺、靈活部署、模塊化架構等等特性,吸引着一大批開發者。筆者也開始加入擁抱.net core大軍,那就搭建一個我的網站吧!數據庫

首先申明的是,這應該是一個長期的項目,我會不按期的更新,持續集成,慢慢的把想要的新功能疊加到網站上。這也是積累的過程,我但願經過文章分享給博友們,也歡迎大家關注我,與我一同討論,共同進步!json

話很少說,我們開始~windows

部署環境

服務器環境瀏覽器

  • 操做系統:Windows Server 2008 R2
  • 數據庫:SQL Server 2012

開發環境安全

  • VS 2017

這裏爲了搭建公網能夠訪問的網站,服務器我用的是XX雲服務器(自帶Server 2008系統,提供公網IP)。固然你們只是想練練手不想花錢,也不要緊,本地運行調試也好,有些遠程配置內容能夠直接跳過。服務器

有了服務器,咱們還須要搭建數據庫。這裏我選的是SQL Server 2012 Express版(帶數據庫管理工具,大概700M),對應中小型應用就夠了。主要由於雲服務器CPU、內存、磁盤是在太珍貴了,儘可能夠用就好,不用最新或功能最全的版本。架構

SQL Server安裝與配置

運行SQL Server 安裝包,按照提示一步步安裝便可,默認安裝是包含客戶單SDK和管理工具,安裝完畢後,SQL Server會自動生成一個數據庫實例;打開菜單中SQL Server Management Studio,鏈接數據庫實例,能夠看到能正常訪問數據庫。固然,這樣訪問本地的數據庫沒問題,可是咱們須要外網遠程訪問數據庫,因此須要作些配置:app

第1步,咱們選中數據庫實例,右鍵-->屬性-->選中 安全性模塊化

由於遠程訪問就不能僅僅經過Windows身份驗證了,這裏咱們選中SQL Server和Windows身份驗證模式;工具

第2步,選中 鏈接,確認「容許遠程鏈接到此服務器」選中;

第3步,數據庫實例-->安全性-->登陸名-->sa右鍵屬性

將超級管理員sa密碼設置一下,並將sa用戶啓用;

第5步,先退出,再用sa登陸,成功即表示sa賬戶已經啓用

第6步,咱們能夠關閉SQL Server Management Studio,打開SQL Server 配置管理器

選中MSSQLSERVER的的協議,將TCP/IP協議狀態改爲已啓用(默認是禁用),完畢後咱們重啓SQL Server;

 

TCP/IP屬性,切換IP地址頁籤,確認TCP端口是不是1433,若是不是,以下配置:

 

至此,SQL Server的相關配置已經設置完畢,但仍是不能支持遠程訪問,咱們還須要設置一下服務器防火牆。

服務器防火牆配置

打開服務器管理器,選中防火牆配置,裏面有「入站規則」,點擊進去;

選中「新建規則...」

規則類型選擇端口:

協議選擇TCP協議,端口號輸入1433(SQL Server默認端口)

下一步,選擇「容許鏈接」

下一步,規則配置文件,全選

最後,輸入規則名稱,取名「SQL Server 端口」,點擊完成,能夠看到咱們的添加的規則已在防火牆容許訪問範圍了。

 

測試遠程訪問數據庫

在本地機器上打開VS 2017,找到視圖-服務器資源管理器--數據鏈接,右鍵-->添加鏈接;

更改數據源,選擇Microsoft SQL Server ;

 服務器名,輸入雲服務器的IP地址,選擇SQL Server身份驗證,敲入以前設置的用戶名和密碼,就能夠加載遠程數據庫實例下的全部數據庫。這樣咱們連遠程數據庫就沒有問題了。

 IIS環境和.NET Core Windows Server Hosting配置

 爲了在服務器上運行咱們的網站,首先須要配置IIS。

Server 2008上,添加"角色",選中「Web 服務器」,完成IIS安裝。

通常的.net發佈的網站,如今就能夠配置運行了,可是.net core與傳統的Asp.Net程序不一樣,Asp.Net Core App使用了Kestrel Server。Kestrel是一個跨平臺的Web Server,與IIS同樣負責請求的監聽、接收和響應,但沒有IIS豐富的管理功能,仍須要由IIS來處理一些前置工做。

因此這塊咱們還須要安裝IIS到Kestrel server的反向代理:.NET Core Windows Server Hosting bundle 

安裝完成後,須要重啓一下機器,而後咱們就能夠正式的搭.net core網站了。

 建立Asp.net Core Web項目

準備工做作完後,咱們終於能夠開始建項目了,打開VS 2017,文件-->項目,建立Asp.net Core Web項目,點擊肯定;

 

這裏默認選擇.net core 2.0環境,Web 應用程序(模型視圖控制器),注意,這裏的身份驗證,我選擇了我的用戶帳戶,主要是方便用戶和角色管理,和身份驗證。後面有單獨的章節,專門跟你們探討一下這塊的知識。肯定後,VS 自動幫咱們生成好可運行的項目代碼。

這時候,咱們就要經過鏈接遠程服務器上的數據庫,經過Code First方式,生成數據庫表結構了。

先在數據庫中實例中,建立一個數據庫,命名爲MyWebSite:

在本地VS中,經過以前服務器資源管理器的配置,咱們看到能夠鏈接MyWebSite這個數據庫,並測試鏈接成功。

點肯定創建數據鏈接,右鍵-->屬性,能夠查看鏈接字符串,拷貝一下這個鏈接字符串

Data Source=180.*.*.89;Initial Catalog=MyWebSite;User ID=sa;Password=***********

打開項目配置文件appsettings.json:

把默認的鏈接字符串用上面字符串替換以下:

  "ConnectionStrings": {
    "DefaultConnection": "Data Source=180.*.*.89;Initial Catalog=MyWebSite;User ID=sa;Password=*******"
  },

這樣,數據庫鏈接就配置好了。由於選擇的是我的身份驗證的項目,因此VS幫咱們生成好了對應的實體類和數據庫遷移,咱們所要作的,是要數據庫更新,來生成相應的表結構。

打開工具-->Nuget包管理器-->程序包管理器控制檯

輸入update-database並運行,成功後,咱們回頭看看遠程的MyWebSite數據庫,幫咱們自動生成了全部的表結構

接下來,咱們ctrl+F5運行一下,網站正常啓動以下:

發佈網站到服務器

 網站本地運行沒問題了,咱們繼續後續發佈的操做,項目右鍵,選擇「發佈...」,暫時咱們選擇本地文件夾(後面項目管理的時候,咱們再配置遠程發佈),將發佈後生成的文件拷貝到雲服務器上,這裏放到c:\MyWebSite目錄中。

IIS管理中,選中網站,把默認的Default Web Site停用,由於它佔用了80端口,跟咱們要搭建的衝突;

右鍵-->添加網站

以下圖配置,用80端口,HTTP默認訪問端口。

點肯定,這樣咱們的網站至此,成功搭建!

用用瀏覽器,輸入外網IP地址訪問咱們的雲服務器(若是不能正常訪問,請檢查防火牆是否開放了80端口,按照以前設置一下就行):

 

ok,完美~

相關文章
相關標籤/搜索