.net core 2.2开发的应用,部署到IIS环境,应用自身重启问题?

nihao955 2020-11-20 01:12:46
.net core 2.2开发的应用,部署到IIS环境,为了实现插件安装卸载功能, 需要重启应用使设置生效,请问IIS环境如何在应用内实现重启自己?
...全文
9697 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
1、停用PluginA:这时候应该有条命令发往:数据库、内存、或者硬盘等一些共享变量的地方。 2、在读取插件的时候,可以根据变量,做一个判断,也许dll加载后无法移除,但你的业务应该可以控制根据变量只加载,而不调用具体的方法。
nihao955 2020-11-24
  • 打赏
  • 举报
回复
谢谢各位的解答,我的项目大体结构是这样的: 主项目:例如Main 用.net core 2.2开发,这个是暂时改不了3.0 插件项目: 例始PluginA 用.net core 2.2开发的webapi, 项目增加一个注册文件Regist类,把本插件需要注册的服务写在里面,项目生成文件,放到 Main下 plugins目录,Main启动的时候在Startup里加载plugins里的插件dll, 注册Regist里面的服务,加载成功后在Main项目swagger可以看到PluginA提供的接口。这个如何做到热插拔呢,比如我在后台把PluginA停用, 不重启应用的情况下swagger里PluginA的接口就去掉?
杀马特丶蛮牛 2020-11-23
  • 打赏
  • 举报
回复
.Net Core 3.0可回收程序集加载上下文AssemblyLoadContext新增了Unload方法,实现了程序集的热插拔,是因为更新重启吗?core热拔插就好啦
wanghui0380 2020-11-22
  • 打赏
  • 举报
回复
在目前的架构里整个核心其实是 SeviceCollections.AddXXXXXX<XXXXXX> 以及各种Contexthost,ContextFactory 以及socpe 生存期 所以,不要问我们,你写的为啥要重启。把你的代码发出来,告诉我们你怎么add的“插件服务”,怎么设计的插件上下文,怎么写的插件生存期 如果我说,我认为插件是瞬时的,每次访问都是瞬时加载的,可以不?那么按照那个园子的各种大仙的教育,这种瞬时的应该怎么办 如果我说,我认为插件是半瞬时的,他的配置文件和目录没有任何改变的,他不重新加载。那么他的生存期是什么,我们一个在那些大仙的教育里,是插到哪个Context的所谓中间件里面去完成 如果我说,我认为插件是永久的,他就应该在下次启动的时候生效,那么我们Add到那里 总之,你应该做的,不是来问我们。而是确定好,你想怎么样。他依赖的上下文是什么,他的生存期是什么。然后,还是找那些园子的大仙们折腾把,因为如果你无法自己说他应该怎么样,那么你只能跟着那些大仙们去搞项目了
吉普赛的歌 2020-11-21
  • 打赏
  • 举报
回复
写 批处理 或 powershell 脚本来重启应用程序池就可以了。
  • 打赏
  • 举报
回复
插件本身就是不重启、“热插拔”的。干嘛要重启?插件只是让符合某接口的插件的旧版本对象们都卸载、获得新版本的一些对象,宿主进程根本不重启。

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧