将.Net Core 接口或网站发布到IIS上,需要遵循一系列步骤来确保正确配置和部署。下面将以.NET Core 3.1的api接口发布示范:
一、环境准备
-
安装.NET Core 3.1 SDK和运行时:
- 在服务器上安装.NET Core 3.1 SDK(如果需要在服务器上编译代码)和.NET Core 3.1 运行时。
- 下载地址:.NET Core 3.1下载
-
安装ASP.NET Core Hosting Bundle:
- 这个安装包包括用于IIS的ASP.NET Core模块。
- 下载并安装与.NET Core 3.1相匹配的Hosting Bundle。
- 安装IIS :
- 确保IIS已安装并运行。如果没有,请在Windows服务器上安装IIS。
二、发布API项目
-
在VS中发布项目:
- 右击项目,选择"发布"。
- 选择"文件夹"作为发布目标,并配置其他相关设置(如删除现有文件等)。
- 点击"发布"按钮生成发布文件夹。
-
将发布文件夹复制到服务器:
- 使用FTP、SCP或其他文件传输工具将发布文件夹复制到IIS服务器的指定位置。
- 使用FTP、SCP或其他文件传输工具将发布文件夹复制到IIS服务器的指定位置。
三、配置IIS
-
创建新的网站:
- 打开IIS管理器,右击"网站",选择"添加网站"。
- 设置网站名称、物理路径(指向发布文件夹)、IP地址(可以是内网地址)和端口(如80或自定义端口)。
-
配置应用程序池:
- 找到新创建网站对应的应用程序池。
- 将.NET CLR版本设置为"无托管代码",托管管道模式设置为"集成"。
-
检查AspNetCoreModule:
- 确保IIS模块中包含AspNetCoreModuleV2。如果没有,请重新安装ASP.NET Core Hosting Bundle。
- 在IIS管理器中,选择你的网站,然后点击"处理程序映射"。
- 确保已添加对.aspnetcore的请求处理映射。
- 如果没有,你需要手动添加它,指向AspNetCoreModule或AspNetCoreModuleV2。
四、防火墙设置
- 添加入站规则
-
选择端口,下一步
-
输入网站定义的端口,
-
然后一直下一步,完成。
五、测试与调试
-
浏览网站:
- 在IIS管理器中,选中新创建的网站,点击"浏览网站"按钮进行测试。
- 输入api路径进行查看
-
查看日志:
- 如果访问失败,请查看IIS日志(位于
%SystemRoot%\System32\inetsrv\config\
下的Logs
文件夹)以获取更多信息。
- 如果访问失败,请查看IIS日志(位于
-
调试与修复:
- 根据日志中的错误信息,进行相应的调试和修复。
六、注意事项
-
端口冲突:
- 确保配置的端口没有被其他应用程序占用。
-
防火墙设置:
- 确保服务器防火墙允许IIS和配置的端口进行通信。
-
权限问题:
- 确保IIS服务具有访问发布文件夹的权限。
-
HTTPS配置:
- 如果需要HTTPS,请确保SSL证书已正确安装并配置。
遵循以上步骤,您应该能够成功地将VS中开发的.NET Core 程序发布到IIS上,并使其能够正常访问。如果遇到任何问题,请仔细查看IIS日志和事件查看器中的错误信息,以便进行进一步的调试和修复。