ASP.NET Core2.0發佈有一陣子了,這是.NET 開源跨平臺的一個重大里程碑, 也意味着比1.0版本要更加成熟。目前.net core具備開源、跨平臺、靈活部署、模塊化架構等等特性,吸引着一大批開發者。筆者也開始加入擁抱.net core大軍,那就搭建一個我的網站吧!數據庫
首先申明的是,這應該是一個長期的項目,我會不按期的更新,持續集成,慢慢的把想要的新功能疊加到網站上。這也是積累的過程,我但願經過文章分享給博友們,也歡迎大家關注我,與我一同討論,共同進步!json
話很少說,我們開始~windows
服務器環境瀏覽器
開發環境安全
這裏爲了搭建公網能夠訪問的網站,服務器我用的是XX雲服務器(自帶Server 2008系統,提供公網IP)。固然你們只是想練練手不想花錢,也不要緊,本地運行調試也好,有些遠程配置內容能夠直接跳過。服務器
有了服務器,咱們還須要搭建數據庫。這裏我選的是SQL Server 2012 Express版(帶數據庫管理工具,大概700M),對應中小型應用就夠了。主要由於雲服務器CPU、內存、磁盤是在太珍貴了,儘可能夠用就好,不用最新或功能最全的版本。架構
運行SQL Server 安裝包,按照提示一步步安裝便可,默認安裝是包含客戶單SDK和管理工具,安裝完畢後,SQL Server會自動生成一個數據庫實例;打開菜單中SQL Server Management Studio,鏈接數據庫實例,能夠看到能正常訪問數據庫。固然,這樣訪問本地的數據庫沒問題,可是咱們須要外網遠程訪問數據庫,因此須要作些配置:app
第1步,咱們選中數據庫實例,右鍵-->屬性-->選中 安全性模塊化
由於遠程訪問就不能僅僅經過Windows身份驗證了,這裏咱們選中SQL Server和Windows身份驗證模式;工具
第2步,選中 鏈接,確認「容許遠程鏈接到此服務器」選中;
第3步,數據庫實例-->安全性-->登陸名-->sa右鍵屬性
將超級管理員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。
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網站了。
準備工做作完後,咱們終於能夠開始建項目了,打開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,完美~