您现在的位置是:首页 >其他 >使用PowerShell自动部署ASP.NetCore程序到IIS网站首页其他
使用PowerShell自动部署ASP.NetCore程序到IIS
简介使用PowerShell自动部署ASP.NetCore程序到IIS
asp.net core
安装asp.net core sdk
https://dotnet.microsoft.com/en-us/download/dotnet/3.1
创建asp.net core项目
dotnet new webapi
运行项目
访问https://localhost:5001/WeatherForecast
iis配置
安装iis
以管理员身份运行powershell
Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerRole, IIS-WebServer, IIS-CommonHttpFeatures, IIS-ManagementConsole, IIS-HttpErrors, IIS-HttpRedirect, IIS-WindowsAuthentication, IIS-StaticContent, IIS-DefaultDocument, IIS-HttpCompressionStatic, IIS-DirectoryBrowsing
安装hosting bundle
https://dotnet.microsoft.com/en-us/download/dotnet/3.1
也可以命令行安装
Invoke-WebRequest -Uri "https://aka.ms/dotnetcore.2.0.0-windowshosting" -OutFile "DotNetCore.WindowsHosting.exe"
Start-Process "DotNetCore.WindowsHosting.exe" -Wait
重启iis服务
Invoke-Expression "net stop was /y"
Invoke-Expression "net start w3svc"
可以使用以下命令来检测ASPNetCoreModule是否已安装
# asp.net core 2.0以前
Get-WebGlobalModule -Name AspNetCoreModule -ErrorAction Ignore
# asp.net core 3.1之后
Get-WebGlobalModule -Name AspNetCoreModuleV2 -ErrorAction Ignore
出现如下信息说明安装成功了
创建网站
以管理员身份启动powershell
首先我们要引入PowerShell中的WebAdministration模块,这样就可以对IIS进行相关的操作了
Import-Module WebAdministration
创建应用程序池
接下来要创建一个应用程序池,名称为TestApp
New-Item -path IIS:AppPoolsTestApp
把应用程序池的.Net版本设置为无托管代码
Set-ItemProperty -Path IIS:AppPoolsTestApp -Name managedRuntimeVersion -Value ''
发布项目
dotnet publish
创建了应用程序池之后,就要创建一个网站,并使用刚创建的应用程序池TestApp,将网站的名称设置为TestSite,并指向你的网站路径如
C:UsersAdministratorDesktop estinDebug
etcoreapp3.1publish
New-Website -name TestSite -PhysicalPath "C:UsersAdministratorDesktop estinDebug
etcoreapp3.1publish" -ApplicationPool TestApp -Port 8080
访问https://localhost:8080/WeatherForecast
https的原因
这行代码搞的鬼,重新发布即可
给发布网站的文件夹添加everyone权限
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。