踩了一晚的坑,本想詳細寫下的,剛纔回覆同事消息花了些時間,要睡覺了,簡短寫下吧前端
一、發佈java
.net core不用不停地編譯了,只要保存便可,配合dotnet watch run就行,這玩意會實時編譯,相似java的jrebeljson
反而是手動編譯要報錯,若是IIS是指向開發目錄,會報不能覆蓋文件,就是生成的快捷鍵要去掉了,我原先是設置Ctrl + Shift + S是生成,由於原先改後端要不停生成,改前端用生成也會保存,因此就設置這個快捷鍵。如今要換回【所有保存】了後端
二、發佈架構
發佈到IIS,據說不能覆蓋,也會報錯。只能發佈到一個目錄,再手動複製過去才能覆蓋,直接用發佈去覆蓋是不行的。網上這麼說的,我沒試過。app
三、IISui
以前寫過,直接用IIS是不行的,要裝SDK什麼的,網上有。url
裝完後,直接指向開發目錄也是不行的,會報不能覆蓋。指向發佈目錄是能夠,但總不能改個字就去發佈一下吧(並且還可能也是沒法覆蓋)spa
要把Web.Config裏命令改爲dotnet,參數改爲watch run,這樣就能夠了,還有個日誌的參數能夠開起來,記錄文本日誌,便於報錯時排查問題。日誌若是放在某目錄下,那個目錄要先建好,它不會直接建。.net
有了watch run,就能夠保存後即生效(原理雖然也是dotnet停了再啓動,但很是快,和原先生成同樣,原先生成DLL原本也不快)
IIS能夠直接配端口(至關於反向代理),若是是命令行要配端口,要改一行代碼,使用appsettings.json裏的配置便可,如:"urls": "http://localhost:95;"
public class Program { public static void Main(string[] args) { var config = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: true) .Build(); WebHost.CreateDefaultBuilder(args) .UseConfiguration(config) .UseStartup<Startup>() .Build().Run(); } }
四、調試
附加到進程,用了網上寫.cmd來啓動(不用IIS)的方法,也是不行,仍然是好多個dotnet進程,我開了個WEB和API,都有八九個進程。。。都不知要附加哪一個,不過附加第一個或第二個基本就能夠,不知這個有沒有排序,仍是靠運氣。
用IIS的話,也會有多個,但會好一些,通常一個項目有兩個(我開了WEB和API後有四個),也是靠猜,基本也是前兩個,搜了一圈沒有好辦法。
折騰一晚後,算是對各個配置項有了些理解,看網上下載的代碼,其它的都是正常的業務邏輯了,.net core就是開頭這些配置弄清楚,能正常開發,就能夠了,仍是有不少不一樣的,總體架構都不同了,全部想配置的地方也不同了,主要是配置項,語法徹底同樣