ASP.NET Core 2.0 MVC 发布部署--------- IIS 具体操作
.Net Core 部署到 IIS系统中的步骤
一、IIS 配置
启用 Web 服务器 (IIS) 角色并建立角色服务。
1、Windows Ddesktop 桌面操作系统(win7及更高版本)
导航到“控制面板” > “程序” > “程序和功能”> “启用或关闭 Windows 功能”。 打开“Internet Information Services”组和“Web 管理工具”。 选中“IIS 管理控制台”框, 选中“万维网服务”框。 接受“万维网服务”的默认功能,或自定义 IIS 功能。如下图1
图1
2、Windows Server 操作系统(本系统是 2012 R2 Standard)
对于服务器操作系统,通过“管理”菜单或“服务器管理器”中的链接使用“添加角色和功能”向导。 在“服务器角色”步骤中,选中“Web 服务器(IIS)”框。
如下图2
图2
继续执行“确认”步骤,安装 Web 服务器角色和服务。 安装 Web 服务器 (IIS) 角色后无需重启服务器/IIS。
二、安装 .NET Core Windows Server 托管捆绑包
在托管系统上安装 .NET Core Windows Server 托管捆绑包。 捆绑包可安装 .NET Core 运行时、.NET Core 库和 ASP.NET Core 模块。 该模块创建 IIS 与 Kestrel 服务器之间的反向代理。 如果系统没有 Internet 连接,请先获取并安装 Microsoft Visual C++ 2015 Redistributable,再安装 .NET Core Windows Server 托管捆绑包。
安装完成以后需要重启系统,或在命令提示符处依次执行 net stop was /y 和 net start w3svc,重启服务,了解系统路径的更改。
三、在 Visual Studio内使用Web 发布系统
本系统发布使用的是vs2017 企业版本,发布系统MmPS,发布成文件系统
(发布之之前,要检查,控制台启动项目的Program.cs
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args).UseIISIntegration()
.UseStartup<Startup>()
.Build();
注意红色标记的内容,是必须的
应用程序配置,启用IISIntegration组件,在应用程序依赖项中包含对Microsoft.AspNetCore.Server.IISIntegration软件包的依赖项。通过将.UseIISIntegration()扩展方法添加到WebHostBuilder(),将IIS集成中间件合并到应用程序中。
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
请注意,调用.UseIISIntegration()的代码不会影响代码的可移植性。
为IISIntegration服务设置IISOptions,要配置IISIntegration服务选项,请在ConfigureServices中包含IISOptions的服务配置。
services.Configure<IISOptions>(options => {
...
});)
1、在vs2017 中选中项目MmPS,右键,点击 发布 选项
2、在 发布 按钮下面 选择 创建新配置文件
3、点击 发布,即可完成发布系统MmPS,发布的项目在MmPS项目的bin\Release\PublishOutput 下的MmPSPublish。
四、web.config的配置
1、web.config 文件
web.config 文件的主要用途是配置 ASP.NET Core 模块。 它可以提供其他 IIS 配置设置。 web.config 的创建、转换和发布 由 .NET Core Web SDK (Microsoft.NET.Sdk.Web) 处理。 SDK 设置在项目文件 <Project Sdk="Microsoft.NET.Sdk.Web"> 的顶部。 要防止 SDK 转换 web.config 文件,请将 <IsTransformWebConfigDisabled> 属性添加到项目文件,并将其设置为 true:
XML
<PropertyGroup> <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
</PropertyGroup>
如果项目中有 web.config 文件,则会使用正确 processPath 和参数转换该文件,以便配置 ASP.NET Core 模块,并将该文件移动到已发布的输出。 转换不会修改文件中的 IIS 配置设置。
2、web.config 位置
.NET Core 应用通过 IIS 与 Kestrel 服务器之间的反向代理托管。 为了创建反向代理,web.config 文件必须存在于已部署应用的内容根路径(通常为应用基路径)中,该路径是向 IIS 提供的网站物理路径。 若要使用 Web部署发布多个应用,应用的根路径中需要包含web.config 文件。敏感文件存在于应用的物理路径中,包括子文件夹,如 <assembly_name>.runtimeconfig.json、<assembly_name>.xml(XML 文档注释)和 <assembly_name>.deps.json。 存在 web.config 文件并使用该文件配置站点时,IIS 会阻止提供这些敏感文件。 因此,切勿意外重命名 web.config 文件或将其从部署中删除,这一点非常重要。
3、web.config 内容的配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\MmPS.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
<modules runAllManagedModulesForAllRequests="true" />
<directoryBrowse enabled="false" />
</system.webServer>
</configuration>
注:stdoutLogEnabled 是记录日志的,一本设置为true,方便查错。
五、IIS上部署创建 IIS 网站
1、在目标 IIS 系统上,创建一个文件夹,将应用的已发布文件夹和文件包含在其中,如MmPS项目的bin\Release\PublishOutput 下的MmPSPublish。
2、在文件夹中创建一个“日志”文件,用于在启用 stdout 日志记录时保存 stdout 日志。 如果部署应用时有效负载中包含了“日志”文件夹,请跳过此步骤。
3、在 IIS 管理器中创建新网站。 提供网站名称,并将物理路径设置为应用的部署文件夹。 提供“绑定”配置并创建网站。
4、将“应用程序池”设置为“无托管代码”。 ASP.NET Core 在单独的进程中运行,并管理运行时。
5、选中网站,右键 管理网站,浏览,既可运行网站了。
六、由于IIS会随着开机启动而自动启动网站服务,因此无需配置supe开机启动守护进程了。
7、测试
在浏览器中输入IP地址,看看网站是否可以正常运行。
注意事项:
问题1:Windows Server 2012 api-ms-win-crt-runtime-l1-1-0.dll 丢失
解决方法:
下载这个补丁
https://www.microsoft.com/zh-cn/download/details.aspx?id=42334
重启电脑
之后在安装microsoft visual C++ 2015。
问题2:发布IIS 是注意
1、添加web.config文件
内容:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\MmPS.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
<directoryBrowse enabled="false" />
</system.webServer>
</configuration>
2、程序启动项program.cs里面注意webhost的设置,如下图。
ASP.NET Core 2.0 MVC 发布部署--------- IIS 具体操作的更多相关文章
- 无法下载apk等格式的文件的解决方案---ASP .NET Core 2.0 MVC 发布到IIS上以后无法下载apk等格式的文件的解决方案
ASP .NET Core MVC 发布到 IIS 上以后 无法下载apk等格式的文件 使用.NET Core MVC创建了一个站点,其他文件可以下载,但是后来又需求,就把手机端的apk合适的文件上 ...
- ASP .NET Core 2.0 MVC 发布到 IIS 上以后 无法下载apk等格式的文件
ASP .NET Core MVC 发布到 IIS 上以后 无法下载apk等格式的文件 使用.NET Core MVC创建了一个站点,其他文件可以下载,但是后来又需求,就把手机端的apk合适的文件上 ...
- ASP.NET Core 2.0 MVC 发布部署--------- ASP.NET Core 发布的具体操作
ASP.NET Core 发布的具体操作 下面使用C# 编写的ASP.NET Core Web项目示例说明发布的全过程. 1.创建项目 选择“文件” > “新建” > “项目”. 在“添加 ...
- ASP.NET Core 2.0 MVC 发布部署--------- CentOS7 X64 具体操作
.Net Core 部署到 CentOS7 64 位系统中的步骤 1.安装工具 1.apache 2..Net Core(dotnet-sdk-2.0) 3.Supervisor(进程管理工具,目的是 ...
- ASP.NET Core 2.0 MVC 发布部署--------- SUSE 16 Linux Enterprise Server 12 SP2 X64 具体操作
.Net Core 部署到 SUSE 16 Linux Enterprise Server 12 SP2 64 位中的步骤 1.安装工具 1.apache 2..Net Core(dotnet-sdk ...
- ASP.NET Core 2.0 MVC 发布部署--------- Ubuntun 16.04 X64 具体操作
.Net Core 部署到Ubuntu 16.04 中的步骤 1.安装工具 1.apache 2..Net Core(dotnet-sdk-2.0) 3.Supervisor(进程管理工具,目的是服务 ...
- ASP.NET Core 2.0 MVC 发布部署--------- linux安装.NET CORE SDK具体操作链接以及操作总细节
具体链接:https://www.microsoft.com/net/learn/get-started/linuxubuntu 如下图:
- [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问
前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...
- [亲测]七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问
前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...
随机推荐
- 【刷题】洛谷 P2675 《瞿葩的数字游戏》T3-三角圣地
题目背景 国王1带大家到了数字王国的中心:三角圣地. 题目描述 不是说三角形是最稳定的图形嘛,数字王国的中心便是由一个倒三角构成.这个倒三角的顶端有一排数字,分别是1 ~ N.1 ~ N可以交换位置. ...
- Unity3D for VR 学习(3): 暴风魔镜PC Input小改造–自己动手、丰衣足食
在做手游的时候,80%时间是在PC调试的,例如业务逻辑.AI算法.核心玩法等. 拿到魔镜提供的demo,晕了,必须得安装到Android机器上,才能调试,究其原因,有三: 需要用到手机陀螺仪 需要用到 ...
- BZOJ1563/洛谷P1912 诗人小G 【四边形不等式优化dp】
题目链接 洛谷P1912[原题,需输出方案] BZOJ1563[无SPJ,只需输出结果] 题解 四边形不等式 什么是四边形不等式? 一个定义域在整数上的函数\(val(i,j)\),满足对\(\for ...
- 洛谷 P4027 [NOI2007]货币兑换 解题报告
P4027 [NOI2007]货币兑换 题目描述 小 \(Y\) 最近在一家金券交易所工作.该金券交易所只发行交易两种金券:\(A\) 纪念券(以下简称 \(A\) 券)和 \(B\) 纪念券(以下简 ...
- 解决:LNMP架构下访问php页面出现500错误
默认情况下,如果被访问的php脚本中包含语法错误,服务器会返回一个空的“200 ok”页面 在php.ini中的fastcgi.error_header选项允许在这种情况下产生一个HTTP错误码 以使 ...
- 【bzoj1022】小约翰的游戏John
Portal -->bzoj1022 Solution 这题其实是裸的反Nim,这里主要是为了写反Nim游戏的证明 首先给出反Nim(anti-nim)的定义和结论: [定义]桌子上 ...
- redis搭建集群并用TreeSoft管理
前言:redis作为一款高效的NOSQL数据库已经深入贯彻和落实到我们的日常开发代码中,作为缓存.时间控制.数据仓库.队列等使用方法层出不穷,简直是开写代码.居家旅行之必备良药.曾经,我们的项目都是单 ...
- Java国密相关算法(bouncycastle)
公用类算法: PCIKeyPair.java /** * @Author: dzy * @Date: 2018/9/27 14:18 * @Describe: 公私钥对 */ @Data @AllAr ...
- python自学笔记(二)
通过前文介绍,大体上可以用学过的知识做一些东西了. 这里简单介绍下python参数解析argparse命令. 使用argparse需要引用 import argparse 然后调用 parser = ...
- libuv移植到android
编译环境是linux + ndk,你要先添加好NDK路径的环境变量,然后进入libuv目录执行以下两句完成编译. $ source ./android-configure $NDK gyp $ mak ...