.NET 4.5+项目迁移.NET Core的问题记录

这几天试着把目前的开发框架迁移到新的.net core平台,中间遇到的问题在这里简单记录一下。

迁移过程遇到的最大的问题IOC容器。我目前使用的IOC容器Castle Windsor还没有.net core版本的实现,虽然core本身提供有注入功能,但我想在代码上尽量保持与.NET Framework的兼容,最后还是选择使用第三方容器Autofac,不过在容器上层做了隔离,也就是可以随时替换掉IOC。

关于第三方容器接管.net core的注入实现,官方文档有介绍,也可以参考autofac的实现

https://github.com/autofac/Autofac.Extensions.DependencyInjection

第二个问题是.net core没有App Domain,不能像以前那样方便的加载项目程序集,替换方法是手工扫描BIN目录,再通过AssemblyLoadContext加载到内存。不过遇到一个问题是在加载入口项目DLL的时候,会提示无法加载,目前我是通过Assembly.GetEntryAssembly()后简单粗暴的排除掉。哪位朋友知道有更好的方法,劳烦告知一下。

其他方式:

var assemblies = DependencyContext.Default.RuntimeLibraries;//需要引用程序集

...

第三个问题是很多Type的反射接口不存在了,可以通过Type.GetTypeInfo()获取,不过要额外引用扩展库。

第四个问题是在发布到服务器IIS之后,出现下面的异常:

HTTP Error 502.5 - Process Failure

Common causes of this issue:
The application process failed to start.
The application process started but then stopped.
The application process started but failed to listen on the configured port.

WINDOWS系统日志:

Failed to start process with commandline '"dotnet" .\Portal.dll', ErrorCode = '0x80070002'.

首先说一下,在部署IIS的时候,需要在windows server上安装文件DotNetCore.1.0.1-WindowsHosting.exe,它会在IIS上添加一个aspnetcore module,托管net core的运行。新建站点后将应用程序池修改为无托管模式即可。就在这个地方我遇到上边的错误,页面一直提示502无法打开,端口和编译平台都没有问题。

网上找了很多方法试过后都没有效果,最后感觉还是hosting的问题,而且我在安排hosting文件的时候的确报过一次错,后来是用右键管理员运行安装完成的,然后到iis模块下果真没有找到aspnetcore module。

卸载后重装又出现了第一次的问题,安装失败。最后在stackoverflow上看到一句话

Make sure when you install the DotNetCore WindowsHosting you have access to the internet because the installer download the VS 2015 resist x64 as dependency.

VS 2015 resist x64 - http://download.microsoft.com/download/8/c/b/8cb4af84-165e-4b36-978d-e867e07fc707/vc_redist.x64.exe

果断下载安装后再运行WindowsHosting就没再报错了,这里还需要重启一下服务器。

https://aka.ms/dotnetcore_windowshosting_1_1_0

手指在键盘上飞快的敲下那一串域名,点击Enter,那一刻的感觉好极了@@

.NET 4.5+项目迁移.NET Core的问题记录的更多相关文章

  1. [转].NET 4.5+项目迁移.NET Core的问题记录 HTTP Error 502.5

    本文转自:http://www.cnblogs.com/ronli/p/5900001.html 这几天试着把目前的开发框架迁移到新的.net core平台,中间遇到的问题在这里简单记录一下. 迁移过 ...

  2. 将 Net 项目升级 Core项目经验:(一)迁移Net项目为Net Core\Standard项目

    迁移Net项目为Net Core\Standard项目 背景: 我们公司内部有自己ORM开发框架,最新因为需要将系统迁移到国产服务器上,所以首先需要将最基础的ORM框架改造可以运行在国产服务器上.对于 ...

  3. 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3

    在 Connect(); 2018 大会上,微软发布了 .NET Core 3 Preview,以及基于 .NET Core 3 的 WPF:同时还发布了 Visual Studio 2019 预览版 ...

  4. 58HouseSearch项目迁移到asp.net core

    前言 58HouseSearch这个项目原本是基于ASP.NET MVC 4写的,开发环境是Windows+VS2015,发布平台是linux+mono+jexus,这样看来整个项目基本已经满足跨平台 ...

  5. .NET项目迁移到.NET Core操作指南

    为什么要从.NET迁移到.NET Core? .NET Core提供的特性 .NET Core性能提升 .NET如何迁移到.NET Core? 迁移工作量评估(API兼容性分析) 迁移方案制定 通过类 ...

  6. (转)项目迁移_.NET项目迁移到.NET Core操作指南

    原文地址:https://www.cnblogs.com/heyuquan/p/dotnet-migration-to-dotnetcore.html 这篇文章,汇集了大量优秀作者写的关于" ...

  7. 迁移WPF项目到.NET CORE

    综述 .NET CORE 3.0开始,桌面端支持WPF了.很多.NET FRAMEWORK的项目已经跑了一阵子了,不是很有必要支持.NET CORE,不过最近用一个程序,为了贯彻一些C# 8的特性,需 ...

  8. Tomcat因项目迁移,启动窗口一闪而过,启动失败的解决办法。

    笔者手动部署一个web项目到Tomcat/webapps/目录下,成功运行.后来,项目结束,我把webapps下的姓项目文件夹删除.重启Tomcat时,运行...\apache-tomcat-8.5. ...

  9. MVC5项目转.Net Core 2.2学习与填坑记录(1)

    流程都是自己摸索,错误地方随便指正... 老项目过于臃肿,并且所有请求都是提交到一个api中,这样当api挂掉的时候,基本所有的项目都瘫痪掉了. 在4月底的时候,下决心将项目用微服务进行重写,刚开始的 ...

随机推荐

  1. VisualRust + VisualGDB编辑调试Rust

    Rust到1.6了,到了一个相对成熟的阶段,可以试用做一些项目了.但是写的代码越多,就会发现一个好的IDE相当于效率的一半.这里分享我 在Visual Studio的使用Rust的经验. 首先需要下载 ...

  2. centos 安装 svn

    1: yum 安装 svn yum install  -y subversion 2验证是否安装完成 svnserve –version svnserve, version 1.6.11 (r9344 ...

  3. shell脚本中的反引号使用 `

    反引号是~的英文切换 在shell脚本中,反引号允许将shell命令的输出赋值给变量. test=`date` 这样shell会执行反引号中的命令.并将执行的结果赋值给变量tests.

  4. 如何在string.Format()方法中输出大括号

    在string.Format参数中,大括号{}是有特殊意义的符号,但是如果我们希望最终的结果中包含大括号({}),那么我们需要怎么做呢?是”\{”吗?很遗憾,运行时,会给你一个Exception的!正 ...

  5. easy ui 框架

    Easy UI 准备工作(搭建) 1.在WebRoot 的目录下创建js 文件夹,在文件夹中倒入一下两个包 Jquery.easyui.min.js jquery.min.js 2.在WebRoot ...

  6. 记录那些我不清楚的知识点(HTML)

    <div class="link"><a href="http://www.baidu.com/" target="iframeHt ...

  7. 寻找子域名的IP段

    校网网络安全检测,第一步,我们做的工作是找出学校所有的IP段.  当然,期间我们可以利用软件帮助我们扫描,但是一款软件往往是不够的,因为它全面,所以我们用了IISPutScanner,subDomai ...

  8. linux操作系统-memcache安装

    安装配置 1. 安装libevent # tar zxf libevent-1.4.6-stable.tar.gz # cd libevent-1.4.6-stable # ./configure # ...

  9. 分享自制的13套 JQuery Mobile 界面主题(追加4套新款)

    15套整合在一起的,其中2套官方+13套自制,款款精致,方便移动开发. 字体默认为微软雅黑. 适配于 JQuery Mobile 1.4.3 下载地址:http://files.cnblogs.com ...

  10. ExtJs 获取Dom对象

    对象指页面上的某一部分,如:Input等.我觉得在EXT JS中会有三类基本对象,htmlelement , EXT.Element和CompositeElement .分别解释一下: htmlele ...