在离线环境中发布.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。

原文地址:http://www.cnblogs.com/durow/p/5765145.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/328786.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

输入一个英文句子,翻转句子中单词的顺序 例如输入“I am a student.”,则输出“student. a am I”。

package com.atguigu.java; //输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。 //为简单起见,标点符号和普通字母一样处理。 //例如输入“I am a student.”,则输出“student. a am …

Java 父类子类的对象初始化过程

转载自 Java 父类子类的对象初始化过程摘要: Java基本的对象初始化过程,子类的初始化,以及涉及到父类和子类的转化时可能引起混乱的情况。1. 基本初始化过程:对于一个简单类的初始化过程是:static 修饰的模块(static变…

HttpServletRequest中getAttribute()和getParameter()的区别

一、数据据来源不同 HttpServletRequest类有setAttribute()方法,而 没有setParameter()方法get/setParameter是在对你的页面中的表单元素进行操作,获取的是这个表单元素中的值,是某个表单提交过去的数据get/setAttribute是对你页面中自己定义…

使用VS Code开发调试.NET Core 多项目

使用Visual Studio Code(VS Code)开发调试.NET Core和ASP.NET Core 多项目multiple project。 之前讲解过如果使用Visual Studio Code(VS Code) 开发单个.NET Core和ASP.NET Core项目,大家也都知道如何开发。 多项目可能有些人还不大了解,今天给大家介绍…

git 在ssh情况下提交代码

git --version --git版本 用户目录(~/) vim ~/.gitconfig --编辑用户目录(~/)下的 .gitconfig文件 --输入i 进入编辑模式 [user] nameRosen email1091947832qq.com [alias] --配置别名 cocheckout 切换分…

如果你也会C#,那不妨了解下F#(1):F# 数据类型

简单介绍 F#(与C#一样,念作“F Sharp”)是一种基于.Net框架的强类型、静态类型的函数式编程语言。可以说C#是一门包含函数式编程的面向对象编程语言,而F#是一门包含面向对象的函数式编程语言。可以查看官方文档了解更多信息。 本系…

String path = request.getContextPath()和String basePath = request.getScheme()

在JSP当中我们会用此代码来拼接路径&#xff0c;所以此语句是用来拼装当前网页的相对路径的。 <% String path request.getContextPath(); String basePath request.getScheme()"://"request.getServerName()":"request.getServerPort()path"/&…

Java中的函数传递

转载自 Java中的函数传递在C和C中&#xff0c;函数的传递可以通过函数指针来实现。在C#中&#xff0c;函数传递可以通过委托、Action、Func来实现。Java中没有函数指针、没有委托&#xff0c;那函数要如何传递呢&#xff1f; 可以通过以下两种方式实现。 1、通过handler&#…

使用Nginx搭建图片服务器(windows7)

1.进入官网下载nginx压缩包&#xff0c;解压后目录如下 2.在解压后的conf/nginx.conf配置文件中&#xff0c;添加添加或者修改带有颜色地方的代码 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/e…

配置mybatis-plus逻辑删除

一、在pom文件里导入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis.plus.boot.starter}</version> </dependency>二、在yml文件或者在properties…

Jexus支持HTTPS协议

众所周知&#xff0c;在HTTPS页面请求HTTP资料的时候&#xff0c;现代浏览器会拦截&#xff0c;提示用户是否继续&#xff0c;或者直接拦截&#xff0c;提示都不出来。 最近给自己做了个快速书签工具&#xff0c;点击书签就直接把书签发送到服务器地址&#xff0c;然后保存到我…

java面向对象高级分层实例_实体类

package bdqn.studentSys.entity; /*** 学生实体类* author Administrator**/ public class Student {private String name;//姓名private String pwd;//密码private int age;//年龄private int stuno;public int getStuno() {return stuno;}public void setStuno(int stuno) {…

虚拟机安装xp经验

虚拟机安装xp经验 1.打开vm软件 2.创建虚拟机 选中单个文件 用pe系统打开 3.用驱动精灵 创建2个分区50g 50g (一定要创建2个gost版要在d盘分配文件夹的)分配8g内存 4核cpu 4.将系统安装到分区上

JAVA实现汉字转换为拼音 pinyin4j/JPinyin

转载自 JAVA实现汉字转换为拼音 pinyin4j/JPinyin在项目中经常会遇到需求用户输入汉字后转换为拼音的场景&#xff0c;比如说通讯录&#xff0c;就会要求按名字首字符发音排序&#xff0c;如果自己写实现这方面的功能是个很好大的工程&#xff0c;还好网上有公开的第三方jar支…

给数据库表字段设置默认值

一、在数据库表中的操作方法 当表中的字段是varchar字段时可以这样设置&#xff1a; 例如我要设置stats&#xff08;状态这个字段默认为"1"&#xff09;&#xff0c;在创建表的时候sql语句可以这样写 stats varchar(1) CHARACTER SET utf8 NOT NULL DEFAULT 1 COMM…

Myeclipse创建第一个web项目

创建web项目 web project 创建java项目 选java project

使用cardme读写VCard文件,实现批量导入导出电话簿

转载自 使用cardme读写VCard文件&#xff0c;实现批量导入导出电话簿首先下载jar包cardme。 http://sourceforge.net/projects/cardme/?sourcenavbar cardme是基于java语言的操作vCard(后缀vcf)文件的开源项目。 在项目中有一个类net.sourceforge.cardme.engine.TestParser。是…

.NET Core系列 :4 测试

2016.6.27 微软已经正式发布了.NET Core 1.0 RTM&#xff0c;但是工具链还是预览版&#xff0c;同样的大量的开源测试库也都是至少发布了Alpha测试版支持.NET Core, 这篇文章 The State of .Net Core Testing Today 就将各个开源测试库的目前进展进行了汇总。本文我们的目的是在…

java高效字符串首字母大小写转换

通过找到一个移动ASCII的方式来处理字符串首字母大小写的问题 我们都知道在ascii 码表中 a的ASCIII码值是65而A的ASCII码值是 97 两个之间的差值是 32&#xff0c;所以&#xff0c;如果我们需要把一个小写字母转化成大写字母&#xff0c;那么我们只需要把这个 char 字符的asci…

java面向对象高级分层实例_BaseDao

package bdqn.studentSys.Dao; /*** 数据库帮助类* author Administrator**/ import java.sql.*; public class BaseDao {Connection connnull;PreparedStatement psnull;ResultSet rsnull;//连接数据库public void getConnection(){try {Class.forName("com.microsoft.sq…