在离线环境中发布.NET Core至Windows Server 2008

0x00 写在开始

之前一篇博客中写了在离线环境中使用.NET Core,之后一边学习一边写了一些页面作为测试,现在打算发布一下试试。看了下官方给出的发布教程感觉挺详细的了(https://docs.asp.net/en/latest/publishing/iis.html),不过毕竟离线环境还是挺麻烦的,直觉告诉我发布过程中会遇到幺蛾子。果然就遇到问题了,不过解决起来都很简单。这里做个记录顺便分享下,希望对有类似需求的同学有所帮助。

0x01 遇到的问题和解决方法

看了官方发布教程,首先去https://www.microsoft.com/net/download下载服务端安装包,下载后复制到离线网络服务器上安装。结果遇到了问题1:

问题1:安装程序可以打开,但安装过程中提示未知错误,安装失败。(可惜离线网络也没法截图)

解决过程:看了下日志应该是安装某个组件过程中返回了错误而失败。我之前曾经过单独安装.NET Core SDK,也是失败,查看日志是缺少Microsoft Visual C++ 2015 Redistributable,装上就可以了。服务程序安装包也会安装.NET Core SDK,应该也是需要Microsoft Visual C++ 2015 Redistributable,于是从VS2015安装镜像里找出了64位安装包(下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=48145),结果安装时又遇到了问题2:

问题2:安装Microsoft Visual C++ 2015 Redistributable时提示安装包无法验证。

解决过程:这个问题在之前离线安装VS2015时就遇到过了,解决起来轻车熟路,把缺少的两个证书导入就OK了。详细可以看在离线环境中使用.NET Core

导入证书后顺利解决了问题2,安装好Microsoft Visual C++ 2015 Redistributable后问题1也解决了,服务程序安装成功。一边感叹自己的聪明一边打开命令行测试了下dotnet,结果出现了问题3:

问题3:命令行执行dotnet命令后提示:

Failed to load the dll from [C:\Program Files\dotnet\host\fxr\1.0.1\hostfxr.dll], HRESULT: 0x80070057

解决过程:这时候只要一边心中默念遇到问题的肯定不会只有我自己,一边打开搜索引擎就可以了。顺便安利一下bing,特别是切换到英文bing,搜问题还是很好的。果然发现之前已经有人在github上提过这个issue了(https://github.com/dotnet/cli/issues/3907)。解决方式就是安装补丁KB2533623(下载地址:https://support.microsoft.com/en-us/kb/2533623)。关于系统依赖更详细的说明可以参照这篇文章:https://github.com/dotnet/core/blob/master/Documentation/prereqs.md。安装补丁重启后dotnet命令就正常了。

最后就是记得要运行iisreset,一定要记得(因为我忘了,折腾了半天才想起来)。

0x02 正确的顺序

以下顺序只在Windows Server 2008 R2 64上实际测试过:

1、导入证书。

2、安装Microsoft Visual C++ 2015 Redistributable。

3、安装KB2533623补丁。

4、安装DotNetCore.1.0.0-WindowsHosting.exe。

5、命令行运行iisreset重启IIS。

关于如何配置IIS和部署应用,官方教程说的都很详细了。值得一提的是等问题解决了后才发现官方教程最后居然有专门的Common errors:https://docs.asp.net/en/latest/publishing/iis.html#common-errors。看一下也挺有收获的。

0x03 写在最后

目前我们主要用.NET Core做一些测试,同时边测试边学习,提前踩坑,用到的时候能快速上手。并没有用来做新功能或试图代替原有功能。不过就目前来看效果还是不错的,开发过程体验也很好,真心看好.NET Core。

在离线环境中发布.NET Core至Windows Server 2008的更多相关文章

  1. [转]在离线环境中发布.NET Core至Windows Server 2008

    本文转自:http://www.cnblogs.com/durow/p/5765145.html 0x00 写在开始 之前一篇博客中写了在离线环境中使用.NET Core,之后一边学习一边写了一些页面 ...

  2. 在离线环境中使用.NET Core

    在离线环境中使用.NET Core 0x00 写在开始 很早开始就对.NET Core比较关注,一改微软之前给人的印象,变得轻量.开源.跨平台.最近打算试着在工作中使用.但工作是在与互联网完全隔离的网 ...

  3. 部署.net Core 到 Windows server 2008 r2 IIs

    1. 将项目发布 2.iis 新建网站,设置 3 安装windows  server  hosting 4 关于报错 1.下载sdk https://www.microsoft.com/net/lea ...

  4. 在离线环境中安装Visual Stuido 2017

    在离线环境中安装Visual Stuido 2017 0x00 写在前面的废话 因为工作上大多数都是在离线环境中进行的,进出离线环境很麻烦,所以之前很长一段时间都在使用VS2010.后来尝试换了VS2 ...

  5. Windows Server 2008 R2 + IIS 环境部署Asp.Net Core App

    Windows + IIS 环境部署Asp.Net Core App   环境:Windows Server 2012, IIS 8, Asp.Net Core 1.1. 不少人第一次在IIS中部署A ...

  6. IIS服务器 远程发布(Web Deploy)配置 VS2010 开发环境 Windows Server 2008服务器系统

    原文:IIS服务器 远程发布(Web Deploy)配置 VS2010 开发环境 Windows Server 2008服务器系统 asp.net 网站有三种常用的发布方式:分别是拷贝开发机上发布好的 ...

  7. Windows Server 2008 R2中的ASP.NET环境架设

    .NET Framework的部分功能在Windows Server 2008 R2得到支持,包括:.NET 2/3/3.5的子集和ASP.NET.另外,PowerShell也在Server Core ...

  8. 您在基于 Windows 7 的或基于 Windows Server 2008 R2 的计算机上读取器中插入智能卡时出现错误消息:"设备驱动程序软件未能成功安装"

    http://support.microsoft.com/kb/976832/zh-cn http://support.microsoft.com/kb/976832/zh-tw 症状 当智能卡插入智 ...

  9. 在系统启动时,Windows Vista 中、 在 Windows 7 中,Windows Server 2008 中和在 Windows Server 2008 R2 中的 497 天后未关闭 TIME_WAIT 状态的所有 TCP/IP 端口

    在系统启动时,Windows Vista 中. 在 Windows 7 中,Windows Server 2008 中和在 Windows Server 2008 R2 中的 497 天后未关闭 TI ...

随机推荐

  1. ASP.NET Core 之 Identity 入门(一)

    前言 在 ASP.NET Core 中,仍然沿用了 ASP.NET里面的 Identity 组件库,负责对用户的身份进行认证,总体来说的话,没有MVC 5 里面那么复杂,因为在MVC 5里面引入了OW ...

  2. Restful资源文章

    理解RESTful架构 RESTful API设计指南 RESTful架构详解 NodeJs的RESTful API

  3. 旺财速啃H5框架之Bootstrap(一)

    接下来的时间里,我将和大家一起对当前非常流行的前端框架Bootstrap进行速度的学习,以案例的形式.对刚开始想学习Bootstrap的同学而找不着边的就很有帮助了.如果你想详细的学习Bootstra ...

  4. 学习ASP.NET Core,怎能不了解请求处理管道[2]: 服务器在管道中的“龙头”地位

    ASP.NET Core管道由注册的服务器和一系列中间件构成.我们在上一篇中深入剖析了中间件,现在我们来了解一下服务器.服务器是ASP .NET Core管道的第一个节点,它负责完整请求的监听和接收, ...

  5. JavaScript正则表达式,你真的知道?

    一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...

  6. Java 为值传递而不是引用传递

    ——reference Java is Pass by Value and Not Pass by Reference 其实这个问题是一个非常初级的问题,相关的概念初学者早已掌握,但是时间长了还是容易 ...

  7. 简析服务端通过GT导入SHP至PG的方法

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中需要在浏览器端直接上传SHP后服务端进行数据的自动入PG ...

  8. 如果你也会C#,那不妨了解下F#(7):面向对象编程之继承、接口和泛型

    前言 面向对象三大基本特性:封装.继承.多态.上一篇中介绍了类的定义,下面就了解下F#中继承和多态的使用吧.

  9. bzoj4724--数论

    题目大意: B进制数,每个数字i(i=0,1,...,B-1)有a[i]个.你要用这些数字组成一个最大的B进制数X(不能有前导零,不需要 用完所有数字),使得X是B-1的倍数.q次询问,每次询问X在B ...

  10. 解决WINDOWS防火墙开启后Ping不通

    WINDOWS系统由于安全考虑,当开启防火墙时,默认不允许外主机对其进行ping功能,即别的电脑ping不通本机.别的主机ping不通本机是因为本机的防火墙关闭了ICMP回显功能,只要把这回显功能打开 ...