运行环境 操做系统 开发工具 frameworks .Net Core SDK 版本 托管运行web
本地 Win10 VS 2015 net461 2.1.401 Kestreljson
服务器 WIn Server 2012 --- ----- 1.0.0-preview2-003121 IIS windows
开发作了以下相关修改:服务器
把 App.config 所有配置所有移植到 appsettings.json。读取配置的文件同时从一个项目到另一个项目,并由此升级了 Nuget 相关的包。app
出现问题:工具
本地用开发工具能够正常调试编译发布, 到服务出现程序清单与加载的dll 版本不一致(Microsoft.Extensions.Configuration.Abstractions.dll 为1.0.0.0, 配置须要加载 1.1.0.0)开发工具
尝试解决:spa
用本地的新版本替换服务器旧版本操作系统
出现新问题: ASP .NET Core HTTP Error 502.5 – Process Failure .net
尝试解决: 升级服务 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