服务器操作系统 Windows Server 2012 R2 Datacenter (带界面)(之前在 Windows Server 2008 R2 上安装netcoreapp3.1 )多次搭建不好)
1.安装IIS 参考 https://blog.csdn.net/muzizongheng/article/details/85228929
2.安装 dotnet-hosting-3.1.13-win 下载地址 https://dotnet.microsoft.com/download/dotnet/3.1 widnwos Hosting Bundle 下载
3.安装vc_redist.x64.exe 下载地址 https://www.microsoft.com/zh-CN/download/details.aspx?id=53840
安装完毕重启服务器
4.创建Api文件夹,做为放置Web Api文件的根目录,权限设置可写
5.Web Api 程序版本 Vs2019开发 + NSwag.AspNetCore(13.6.2) 【Swagger 】 ,在Startup.cs中配置NSwag,参考https://www.cnblogs.com/caijt/p/11875905.html
6.修改Web Api的接口根地址和默认的5000端口,Web Api默认的根地址是localhost:5000 ,打开Program.cs
public static void Main(string[] args)
{
Host.CreateDefaultBuilder(args)
.UseIdHelper()
.UseLog()
.UseCache()
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder
.UseUrls("http://*:8003") // 这里默认是http://*:5000 .现在改成8003端口
.UseStartup<Startup>();
})
.Build()
.Run();
}
appsettings.json中 "WebRootUrl": "http://121.15.220.10:8003" //接口根地址 ,默认是 http://localhost:5000 121.15.220.10 是服务器IP
修改完成后,点击发布,把发布完成的文件复制到服务器api文件夹内
。注意:vs2019中,发布的框架版本 netcoreapp3.1 和服务器上安装的.net core版本必须一致
7. 打开swagger测试页面,目前还没有搭建任何iis网站设置,现在使用不依赖iis的情况下,访问swagger测试页面
console host,把文件部署产生的dll 复制到目标机器,直接用dotnet命令行启动web工程的dll
在服务器打开api文件夹,在文件夹空白处,按下Shift + 鼠标右键菜单,点击"在此处打开命令窗口",
然后打开浏览器,输入http://服务器IP地址:8003/swagger/ ,就可以正常打开 测试页面了,不需要任何IIS配置,关闭这个cmd,http://服务器IP地址:8003/swagger/ 也无法打开了。
8.下边开始配置IIS
新建网站,不需要先设置程序池,ip地址选择下拉默认的内网地址,不需要写公网地址(写了会访问出错),端口为8003,和上边设置的一致
创建完成后,api程序池默认是这样的,无需修改为“无托管代码”一样可以正常运行 http://服务器公网IP地址:8003/swagger/。换成“无托管代码”,也是可以运行正常
高级设置保持默认不修改
所有设置全部完成
最后几张截图
点击网站->模块,全程没有出现过 AspNetCoreModule ,只有 AspNetCoreModuleV2,一样正常运行
感觉最重要的是服务器上的.net core runtime版本要和vs2019发布时候的目标框架版本一致
测试代码下载地址 http://www.mamicode.com/info-detail-3078753.html 开发工具使用的是Visual Studio 2019 使用的是Asp.Net Core平台,开发所有业务,向前台提供Rest API接口
其他参考
https://www.cnblogs.com/ugvnui/p/11706724.html