Windows Server 2008r2 部署Net Core3.0 简记(更新)


  最近迁移项目Asp.Net.MVC 到Asp.NetCore3.0 .MVC 上,基本能够看页面效果了,合计今天先在Windows服务器上部署一下,看看效果;

  一、环境准备:

      (纯净windows 环境)Windows Server 2008r 2 64 位 (sp1);  NetCore 3.0 发布文件

  二、环境配置

   1、开启 IIS,

   打开:【开始菜单--管理工具】服务器管理器--》选择角色--》添加角色--》(添加角色向导) 选择下一步--》勾选 服务器角色:web 服务器(IIS)--》自定义选择自己想要添加的角色服务(不确定时,使用默认勾选,后期再修改)--》选择完成后,下一步,安装;

  补充:本次操作新增勾选角色服务:(1)、应用程序开发:Asp.Net 、.Net扩展性;(2)、健康诊断:Http日志记录、请求监视;(3)、安全性:进步身份验证、Windows 省份验证、(4)、管理工具:IIS管理控制台、IIs6 管理兼容性(5)、IIs可承载web 核心。

   当提示安装完成,可以测试iis 是否正常安装:浏览器 访问 http://localhost  有页面即 可;

   修改IIS 角色服务选项:在服务器角色中,选择添加角色服务即可编辑;

     2、安装环境支持配置:

    (1)、安装.net FrameWork 4.5

    (2)、安装补丁:针对 Windows 7 /Windows Server 2008r2 补丁:Windows6.1- KB2999226 、Windows6.1-KB4019990 

      说明: 本次部署配置,因没有安装补丁 Windows6.1- KB2999226,安装完VC++2015、 Core 运行时后 Core 项目无法打开,

          使用dotnet 命令查看Core 安装信息,提示:无法定位程序输入点ucrtbase.terminate于动态链接库api-ms-win-crt-runtime-|1-1-0.dll

          查找资料发现,必须有补丁Windows6.1- KB2999226 (https://www.microsoft.com/zh-CN/download/confirmation.aspx?id=49093)支持,否则不成功

            于是,安装完该补丁后,重新安装VC++2015 正常。

    (3)、安装Microsoft Visual C++ 2015 Redistributeble 14.0.23026    --此处可以安装 VC++2015 更高版本,因测试该版本测试正常,没有再测试其他版本;

    (4)、 【AspNetCoreModuleV2 支持】安装Core RunTime 及Hosting 支持:---》检测方式:在IIS管理器里,随便找一个站点,在功能视图内,查看 IIS 模块---》分组依据:条目类型---》AspNetCoreModult V2    ----找不到,就安装。

      开发项目使用的是 VisualStdiu 2019 16.4, 此处下载使用的Core runtime为  dotnet-hosting-3.1.3-win 【打包版,基本挺全】

      aspnetcore-runtime-3.0.3-win-x64.exe 64位:(https://download.visualstudio.microsoft.com/download/pr/ff658e5a-c017-4a63-9ffe-e53865963848/15875eef1f0b8e25974846e4a4518135/dotnet-hosting-3.1.3-win.exe)

      aspnetcore-runtime-3.0.3-win-x86.exe   32位:(https://download.visualstudio.microsoft.com/download/pr/289dff4e-eec9-4d2f-9b4b-fe7524e89e79/db4900dcf54b4bb7dcc8beecb5634695/aspnetcore-runtime-3.0.3-win-x86.exe)

      (https://download.visualstudio.microsoft.com/download/pr/207c4791-a366-4d35-96ed-0bbe10a683d3/1ca408df70ca668ea8e8ec36d2aedf48/aspnetcore-runtime-3.0.3-win-x64.exe)

    (5)、以上处理完成后,测试Core 运行时是否正常: 打开cmd 窗口,输入 dotnet  --》正常 展示 安装core 版本信息;

    (6)、部署Core 发布文件到 IIS 上,打开iis 管理器(Win +R ---》 inetmgr  ):点击网站--》添加网站--》 输入网站名称、选择或者粘贴项目物理 文件路径、站点绑定信息自定义  ---》确定----》打开应用程序池---》选择刚才创建的网站应用程序池----》选中后右键  基本设置--》设置.Net FrameWork 版本为无托管代码----》检查当前应用程序高级设置:启用32位应用程序:False。(设置为true 页面将展示:Http 错误 503.0-Server Unavailable    错误代码:0x800804e7 )

    (7)、到此,基本配置完成,站点能够访问。

    三、遗留问题(--2020-04-07 19:20更新

    因部署的项目使用国产数据库 达梦(DM8 )进行数据存储,达梦数据库在服务器上已经安装成功;但是在项目在访问数据库展示数据过程中,页面报错!

    项目记录日志:【主库】状态不可用,等待后台检查程序恢复方可使用。Error 【IM003】 由于系统错误,拒绝访问。(DM8 ODBC Driver ,C:\dmdbms\bin\dodbc.dll),指定驱动程序无法加载。

    页面展示异常信息:

      Error . An error occurred while pricessing your request.

      Development Mode    Swapping to the Developement environment displays detailed information about the error that occured.

      The Development environment shouldn't be enabled for deployed applications. It can result in displaying sensitive information from exceptions to end users .For local debugging ,enable th Development enviroment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development and restarting the app.

  对于上述问题,从日志信息看出是由于没有获取到相应数据导致,通过跟踪代码,发现无法连通数据库;本地通过dotnet  命令部署正常;IIS上失败!

  解决方案:打开IIS 中部署站点应用程序池,查看高级设置----》设置 :进程模型-----》LocalSystem ;----->问题解决。

    无奈,无法截图到外网,只能通过文字进行一些记录了。

      欢迎点赞!转载请注明出处!