首页 新闻 会员 周边

关于 dotnet core 发布的几个问题

1
悬赏园豆:100 [已解决问题] 解决于 2017-09-25 16:59

计划把项目迁移到dotnetcore,技术准备中,现在遇到以下几个问题:

1、我现在使用 supervisor 做监视器,用于开机启动站点服务,用nginx的反向代理功能链接到站点。

问题:是否dotnet的网站一般都是独立运行一个进程(独立一个监听端口),就类似tomcat那样?

2、我对demo项目配置了命令行支持和配置文件hosting.json支持,用于为站点提供不同的监听地址和端口。配置hosting.json时设定了修改后自动重载。

问题:如果hosting.json里配置了host信息,修改hosting.json后的重载是否能导致站点(dotnet 应用进程)的host信息同时修改?在我实验里,发现并没有被重新修改。

3、dotnet publish命令发布时,是不能把目标文件夹指向运行中的应用文件夹的,会报告文件锁定的错误,但是,可以通过发布到其它文件夹再把文件复制过去覆盖。

问题:程序文件夹的文件(特别是配置文件、dll文件等)被修改后,是否会导致应用的重新启动?就类似于IIS中的dll和web.config被修改后进程被重置那样。

4、dotnet publish发布后,会把views文件夹的所有cshtml也预编译了,虽然性能提升了,也有优缺点。

问题:如何控制dotnet publish不预编译views文件夹?

谢谢!

 

 

 

 

519740105的主页 519740105 | 大侠五级 | 园豆:5810
提问于:2017-09-14 14:07
< >
分享
最佳答案
0

问题1:每个dotnet项目都会独立一个进程,感觉的确有点像Tomcat。但是如果你一个进程中绑定了多个外部项目,那就不好说了。

问题2:修改Json后配置不会及时修改这个是Core的一个通病,因为无论如何Core都只是一个应用程序,而不再是Web程序,所以所有的配置都是在启动时加载完成的。修改配置需要重启项目。我在博客里说过类似的一个问题。

问题3:直接替换如果是附属的dll好像还没有问题(具体没试过),但是如果是直接替换主要的dll,一般来讲进程是阻止你这么干的,强制的话会杀掉进程,跟重启也没什么两样了(我猜的)

问题4:有个大哥回答了,我没试过,就不说了。其实如果问题3,能解决,让他预编译也没什么问题不是?

收获园豆:60
写代码的相声演员 | 小虾三级 |园豆:517 | 2017-09-14 14:30


问题2、问题3:按照你说的,如果我们把项目都写成一个外壳模块和业务模块,这样,可以把外壳固化,而业务动态,只要不修改外壳相关的内容(比如监听端口等),是无需重新启动的。

是这个意思吧?

519740105 | 园豆:5810 (大侠五级) | 2017-09-20 16:15
其他回答(1)
0

关于问题 4 : 你可以参考一下我在这个问题下面的回答。 https://q.cnblogs.com/q/98096/

收获园豆:40
BUTTERAPPLE | 园豆:3190 (老鸟四级) | 2017-09-14 14:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册