本文目錄
1. 摘要
2. Window下運行
3.linux下運行
4. 開發記錄
5. 總結
1.概要
寫《Asp.Net Core 2.0 項目實戰》系列斷斷續續已經很長時間了,期間不少朋友要求開放源碼,可是項目代碼一直有不少問題,就算勉強開源出來你們看起來也比較費勁,運行起來也看不到實際的效果。在公司平時真的是太忙了,不多有時間去系統的整理一個框架,只能以學習這種形式邊學邊作。承諾你們開源出來此項目我作到了,雖然項目依然有不少問題,我接下來會再完善。功能暫時不會再增長了,暫時先作到權限管理,以及支撐後端框架運行的相關功能。
2.Window下運行
項目:Vs2017+MSSQL2017
下載項目後首先須要調整數據庫鏈接地址,緩存地址;以及appsettings.json 配置裏須要調整的項。主要項目或文件夾下放的都有readme.txt文件,注意關注裏面的提示。
調整完成後Visual Studio2017直接運行就能夠瀏覽項目,打開項目地址輸入http://localhost:xx/ad_min進入後臺查看功能。
用戶名:admin密碼:admin888
Iis上運行須要發佈,發佈配置選擇默認,linux發佈須要選擇linux x64。
3.linux下運行
在linux下我本地如今只安裝了centos7虛擬機,測試能夠打開,但有部分功能牽扯到路徑問題暫時還未處理,後臺會調整再發佈一個版本。
安裝centos網上有不少教程,部署到centos上後,虛擬機裏直接http://localhost:5000打開就能夠了,注意運行的時候linux下區分大小寫(必須),外部訪問需用到nginx參考https://www.cnblogs.com/hager/p/5689493.html
4.開發記錄
碰見netcore2.0問題,優先看官網上的案例。
##--發佈--
1.dotnet publish或右鍵發佈
2.window系統上部署iis7+或運行dotnet nc.mvc.dll
3.centos下運行測試(dll文件名大小寫不能寫錯)dotnet NC.MVC.dll
##--日誌記錄--
1.微軟已經內置了日誌支持,日誌級別:Trace -》Debug-》 Information -》Warning-》 Error-》 Critical;案例參考HomeController
引用Microsoft.Extensions.Logging
使用dotnet run運行項目,能夠看到輸出效果
2.使用NLog,NLog也是擴展的Microsoft.Extensions.Logging,添加NuGet包Microsoft.NETCore.App而後引用
using NLog.Extensions.Logging;
using NLog.Web;
配置NLog.config文件,設置日誌等級參數以及日誌路徑等
默認日誌寫入到項目根目錄xxx\bin\Debug\netcoreapp2.0\
3.集成一個本身寫的Logger
appsettings.json配置是否記錄日誌,以及記錄位置設置。
參考NC.Core>MSSQL>DbCommand.cs
##--linux下大小寫敏感--
如NLog組件,Startup.cs寫小寫,那麼對應的nlog.config必定要所有小寫。
##--centos--
1.centos聯網必須開啓服務VMware NAT Service和VMware DHCP Service(VMnetDHCP)
2.centos部署的站點必須經過nginx代理,這樣才能夠訪問到虛擬機運行的netcore程序
3.https://www.cnblogs.com/hager/p/5689493.html
##--Directory.GetCurrentDirectory()坑點--
windows 下是 "\", Mac OS and Linux 下是 "/",這個待驗證。若是成立可解決linux下建立文件夾問題
??linux下建立文件夾問題待解決
Directory.GetCurrentDirectory();此方法不是真正的獲取應用程序的當前方法,而是執行dotnet命令所在目錄;如dotnet publishoutput/nc.mvc.dll,日誌記錄的位置就會跟着改變。
//獲取應用程序的當前目錄:
dynamic type = (new Program()).GetType();
string currentDirectory = Path.GetDirectoryName(type.Assembly.Location);
Console.WriteLine(currentDirectory);
#
經過控制器右鍵添加視圖,轉到視圖頁等特性都沒有了,包括添加區域,自動進行區域配置也都沒法使用,致使咱們必須本身手動建立區域以及配置
##--2018-03-21##
1.Session封裝
2.cookie讀取封裝
##--2018-06-21--##
1.ef core操做數據庫時,參數要一致,如:long不能傳int,不識別。
##--2018-06-22--##
1.Request.Form必須確保必須傳遞參數才能使用,不然報錯System.InvalidOperationException;只有post下且有參數才能夠用寫Request.Form,不然報異常。
5.總結
實戰項目暫時告一段落了,裏面的bug以及在linux跨平臺運行問題我會抽時間再完善,小的更新我會直接在羣裏發佈,若是有問題也能夠在羣裏(444036561)提出,人多力量大,相同問題到時候我會在博文後面再整理出來解答。若是關注的人多了後續我會基於這個後臺再整合一個內容管理系統(CMS)出來,仍是要看項目的發展,以及本身的時間分配。文章寫做順序爲亂序,看源碼的時候碰到問題能夠先在博文中查找。寫在最後:原創不易,歡迎打賞/分享/推薦!
GIT地址:http://www.github.com/oorz/ncmvc