运行环境      操作系统                  开发工具      frameworks     .Net Core SDK 版本             托管运行

本地             Win10                       VS 2015        net461            2.1.401                                Kestrel

服务器          WIn Server 2012       ---                  -----               1.0.0-preview2-003121        IIS

开发做了如下相关修改:

把 App.config 全部配置全部移植到 appsettings.json。读取配置的文件同时从一个项目到另外一个项目,并由此升级了 Nuget 相关的包。

出现问题:

本地用开发工具可以正常调试编译发布, 到服务出现程序清单与加载的dll 版本不一致(Microsoft.Extensions.Configuration.Abstractions.dll 为1.0.0.0, 配置需要加载 1.1.0.0)

尝试解决:

用本地的新版本替换服务器旧版本

出现新问题: ASP .NET Core HTTP Error 502.5 – Process Failure

尝试解决:  升级服务 sdk 版本,错误依旧,安装 .NET Core  Runtime & Hosting Bundle 对应的版本,错误依旧,修改web.cofig  modules="AspNetCoreModule" 为  modules="AspNetCoreModule2"  提示找不到模块

还原 Microsoft.Extensions.Configuration.Abstractions 版本依旧无法启动, 只有删除升级的 sdk 与runtime,但是问题依旧。

最终只得在本地开发环境, 通过 Nuget 管理程序包降级  Microsoft.Extensions.Configuration.Abstractions 的版本后重新发布,发布程序在服务器才可以正常运行~~~~

本以为大功告成,然而,本地直接运行程序调试出现问题:

找到的程序集版本与清单定义不符

查看本地 debug 文件下面  exe.cofing 配置,确实指定了 1.1.0.0 版本。 手动修改后,运行程序 ,还是出现错误。

这次仔细查看异常详情:

=== 预绑定状态信息 ===
日志: DisplayName = Microsoft.Extensions.Primitives, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
(Fully-specified)
日志: Appbase = file:///E:/xxx/bin/Debug/net461/win7-x64/
日志: 初始 PrivatePath = NULL
调用程序集: Microsoft.Extensions.Configuration.Abstractions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60。
===
日志: 此绑定从 default 加载上下文开始。
日志: 正在使用应用程序配置文件: E:\xxx\bin\Debug\net461\win7-x64\Siyan.MessageService.Web.exe.Config
日志: 使用主机配置文件:
日志: 使用 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config 的计算机配置文件。
日志: 在应用程序配置文件中找到重定向: 1.0.0.0 已重定向到 1.1.0.0。
日志: 策略后引用: Microsoft.Extensions.Primitives, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
日志: 尝试下载新的 URL file:///E:/xxx/bin/Debug/net461/win7-x64/Microsoft.Extensions.Primitives.DLL。
警告: 比较程序集名称时发生不匹配: 次版本
错误: 未能完成程序集的安装(hr = 0x80131040)。探测终止。

好像焕然大悟,觉得胜利唾手可得了。赶紧到本机配置文件(machine.config )查看,并没有找到相关配置。清理解决方案,清理项目再次运行,问题还在,有点崩溃的感觉!

最后,只有出绝招了,直接强制删除 exe.config 文件 ,再次生成, 运行调试,问题解决!!!

总结: 对.net core 项目部署发布不熟悉,走了很多弯路,其实只需删除本地 bin 目录下面 exe.config 文件重新生成即可,因为 vs 自动清理不会清理旧的此文件,造成新的改动无法同步,干扰问题原因查找与解决!

.Net Core 官方配置可查看:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2

最新文章

  1. java操作数据库增删改查的小工具1--TxQueryRunner
  2. RichTextBox实现鼠标右键(剪切,复制,粘贴)功能
  3. 用 const 还是用 let?
  4. linux 源码安装详解
  5. mysql忘记密码
  6. CodeForces 466E Information Graph --树形转线性+并查集
  7. 树形DP codevs 1814 最长链
  8. 必须会的SQL语句(四)删除和更新
  9. vs怎么创建MVC及理解其含义
  10. iOS 沙盒目录结构介绍
  11. 优化:代码移动code motion
  12. Entity Framework 学习高级篇2—改善EF代码的方法(下)
  13. 201521123029《Java程序设计》第七周学习总结
  14. WPF前台界面显示“未将对象引用设置到对象的实例”
  15. SpringCloud-day09-Feign与Hystrix整合
  16. JavaScript进行简单的随即验证码生成(适合和我一样刚入门一本完整的教材书都没看完的弟弟)
  17. [leetcode]528. Random Pick with Weight按权重挑选索引
  18. 使用 NuGet 管理我们的程序集 - 预发行版
  19. 【Python】关于Python多线程的一篇文章转载
  20. 简单的cxf-rs

热门文章

  1. Assertion failure in -[UISectionRowData refreshWithSection:tableView:tableViewRowData:]
  2. 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_12-用户退出-服务端
  3. 清空表且id为0
  4. iOS 将一个UIImage缩放到指定Size
  5. hyperledger学习资料
  6. python登录项目
  7. activiti的坑
  8. wordpress可以自定义获取相关文章的代码
  9. 【馨儿收藏】群星《2019最新好听DJ舞曲精选》全系列【WAV/在线/百度】(持续更新)
  10. Win 7 环境上,ThingsBoard安装及启动