net core web程序在IIS中发布部署运行

2021-03-22  乐帮网

iis netcore

新建一个.Net Core Web项目,可以是MVC的,也可以是Pages的,部署步骤也一样。下面我建了一个项目名称是:netcore.demo.mvcweb。
本次没有做额外的开发,只是默认项目代码,首先我们发布项目,右键项目发布,然后目标我们选择文件夹,其它的都是默认选项。选择完成后记得点击右上角的发布按钮完成发布操作。例如我发布后的路径是:D:\Demos\netcore.demo\netcore.demo.mvcweb\bin\Release\netcoreapp3.1\publish

完成后以上的程序准备工作后下面开始我们的IIS部署工作。部署前服务器环境需要你做的事情有以下三点(SDK 包含运行时,服务器上只需要安装运行时)

* 确认是否已经安装.Net Core 对应的SDK (如何你是开发机,可能早已经装好了,运行时也可不必安装 了)

* 确认是否已经安装.Net Core运行时,可直接下载安装 :https://dotnet.microsoft.com/download

* 安装IIS托管模块,下载链接可以从这里找到:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-3.1&tabs=visual-studio

例如我下载5.04的 链接是:https://download.visualstudio.microsoft.com/download/pr/2281cc70-3851-4dec-b418-4f5be60d8f2e/0163e524e63c2bb07d9da642ca1468d5/dotnet-hosting-5.0.4-win.exe

(1)新建net core应用程序池
同时按下windows键+R 召唤出运行小窗口然后输入 inetmgr 打开IIS管理工具。找到应用程序池右键添加,或者找到添加按钮进行添加。名称:netcore ,.NET CLR版本选择 无托管代码 托管管道模式随便,因为这个选择在net core程序中用不到了。如下图:

001

002

(2)新建站点
在我们默认的站点下面添加应用程序, Default Web Site 右键 ->添加应用程序... 分别填写 别名 :netcoredemo 应用程序池选择我们上一步新建的netcore  物理路径填写 我们的发布路径:D:\Demos\netcore.demo\netcore.demo.mvcweb\bin\Release\netcoreapp3.1\publish
最后点击确定按钮,完成新建。

003

(3)添加配置文件
理论上net core 已经不需要 config文件了,但是要是部署在iis下,这个还需要告诉 IIS托管启动的入口和参数。在项目的根目录添加一个web.config文件,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
	<location path="." inheritInChildApplications="false">
		<system.webServer>
			<handlers>
				<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
			</handlers>
			<aspNetCore processPath=".\netcore.demo.mvcweb.exe" arguments="" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout"  hostingModel="inprocess" >
				<environmentVariables>
					<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
					<environmentVariable name="COMPLUS_ForceENC" value="1" />
				</environmentVariables>
			</aspNetCore>
		</system.webServer>
	</location>
</configuration>

 

004

注意 netcore.demo.mvcweb.exe 文件换成你自己的项目名称的exe文件。这个exe在linux下没有用处,是微软特地为在windows下预留的。添加配置完成后记得重新发布一下项目。

我们在IIS管理器内点击浏览,就可以看到我们熟悉的页面了。

005

lebang2020.cn出品。

公众号二维码

关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com

庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。

欧阳修

付款二维码

如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力