本文目錄 1. 摘要 2. Window下運行 3.linux下運行 4. 開發記錄 5. 總結 1.概要 寫《Asp.Net Core 2.0 項目實戰》系列斷斷續續已經很長時間了,期間很多朋友要求開放源碼,但是項目代碼一直有很多問題,就算勉強開源出來大家看起來也比較費勁,運行起來也看不到實際的效 ...
Asp.Net Core 2.0 項目實戰(1) NCMVC開源下載了
Asp.Net Core 2.0 項目實戰(2)NCMVC一個基於Net Core2.0搭建的角色許可權管理開發框架
Asp.Net Core 2.0 項目實戰(3)NCMVC角色許可權管理前端UI預覽及下載
Asp.Net Core 2.0 項目實戰(4)ADO.NET操作資料庫封裝、 EF Core操作及實例
Asp.Net Core 2.0 項目實戰(5)Memcached踩坑,基於EnyimMemcachedCore整理MemcachedHelper幫助類。
Asp.Net Core 2.0 項目實戰(6)Redis配置、封裝幫助類RedisHelper及使用實例
Asp.Net Core 2.0 項目實戰(7)MD5加密、AES&DES對稱加解密
Asp.Net Core 2.0 項目實戰(8)Core下緩存操作、序列化操作、JSON操作等Helper集合類
Asp.Net Core 2.0 項目實戰(9) 日誌記錄,基於Nlog或Microsoft.Extensions.Logging的實現及調用實例
Asp.Net Core 2.0 項目實戰(10) 基於cookie登錄授權認證並實現前臺會員、後臺管理員同時登錄
Asp.Net Core 2.0 項目實戰(11) 基於OnActionExecuting全局過濾器,頁面操作許可權過濾控制到按鈕級
本文目錄
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)出來,還是要看項目的發展,以及自己的時間分配。文章寫作順序為亂序,看源碼的時候碰到問題可以先在博文中查找。寫在最後:原創不易,歡迎打賞/分享/推薦!