.net Core 踩坑记:生成、发布、IIS、调试

踩了一晚的坑,本想详细写下的,刚才回复同事消息花了些时间,要睡觉了,简短写下吧前端

 

一、发布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就是开头这些配置弄清楚,能正常开发,就能够了,仍是有不少不一样的,总体架构都不同了,全部想配置的地方也不同了,主要是配置项,语法彻底同样

相关文章
相关标签/搜索