.Net Core 接口或网站发布到IIS

将.Net Core 接口或网站发布到IIS上,需要遵循一系列步骤来确保正确配置和部署。下面将以.NET Core 3.1的api接口发布示范:

一、环境准备

  1. 安装.NET Core 3.1 SDK和运行时

  2. 安装ASP.NET Core Hosting Bundle

  1. 安装IIS
    • 确保IIS已安装并运行。如果没有,请在Windows服务器上安装IIS。

二、发布API项目

  1. 在VS中发布项目

    • 右击项目,选择"发布"。
    • 选择"文件夹"作为发布目标,并配置其他相关设置(如删除现有文件等)。
    • 点击"发布"按钮生成发布文件夹。
  2. 将发布文件夹复制到服务器

    • 使用FTP、SCP或其他文件传输工具将发布文件夹复制到IIS服务器的指定位置。

三、配置IIS

  1. 创建新的网站

    • 打开IIS管理器,右击"网站",选择"添加网站"。
    • 设置网站名称、物理路径(指向发布文件夹)、IP地址(可以是内网地址)和端口(如80或自定义端口)。
  2. 配置应用程序池

    • 找到新创建网站对应的应用程序池。
    • 将.NET CLR版本设置为"无托管代码",托管管道模式设置为"集成"。
  3. 检查AspNetCoreModule

    • 确保IIS模块中包含AspNetCoreModuleV2。如果没有,请重新安装ASP.NET Core Hosting Bundle。
    • 在IIS管理器中,选择你的网站,然后点击"处理程序映射"。
    • 确保已添加对.aspnetcore的请求处理映射。
    • 如果没有,你需要手动添加它,指向AspNetCoreModule或AspNetCoreModuleV2。

四、防火墙设置

  1. 添加入站规则
  • 选择端口,下一步

  • 输入网站定义的端口,

  • 然后一直下一步,完成。

五、测试与调试

  1. 浏览网站

    • 在IIS管理器中,选中新创建的网站,点击"浏览网站"按钮进行测试。
    • 输入api路径进行查看
  2. 查看日志

    • 如果访问失败,请查看IIS日志(位于%SystemRoot%\System32\inetsrv\config\下的Logs文件夹)以获取更多信息。
  3. 调试与修复

    • 根据日志中的错误信息,进行相应的调试和修复。

六、注意事项

  1. 端口冲突

    • 确保配置的端口没有被其他应用程序占用。
  2. 防火墙设置

    • 确保服务器防火墙允许IIS和配置的端口进行通信。
  3. 权限问题

    • 确保IIS服务具有访问发布文件夹的权限。
  4. HTTPS配置

    • 如果需要HTTPS,请确保SSL证书已正确安装并配置。

遵循以上步骤,您应该能够成功地将VS中开发的.NET Core 程序发布到IIS上,并使其能够正常访问。如果遇到任何问题,请仔细查看IIS日志和事件查看器中的错误信息,以便进行进一步的调试和修复。

相关推荐
shepherd枸杞泡茶18 小时前
第3章 3.3日志 .NET Core日志 NLog使用教程
c#·asp.net·.net·.netcore
csdn_aspnet18 小时前
ASP.NET Core 简单文件上传
asp.net·.netcore
亦世凡华、2 天前
掌握.NET Core后端发布流程,如何部署后端应用?
经验分享·.netcore·docker部署·程序发布
contact972 天前
.NET Core中的五种过滤器详解
.netcore·过滤器
以为不会掉头发的詹同学3 天前
【 Avalonia UI 语言国际化 I18n】图文结合教学,保姆级教学,语言国际化就是这么简单(.Net C#)
开发语言·前端·c#·.netcore·用户界面
2301_793069823 天前
HTTP 和RESTful API 基础,答疑
网络协议·http·api·restful
十幺卜入3 天前
DeepSeek服务器繁忙 多种方式继续优雅的使用它
openai·api·deepseek·服务器繁忙
shandianchengzi3 天前
【笔记】LLM|Ubuntu22服务器极简本地部署DeepSeek+联网使用方式
服务器·llm·api·本地部署·deepseek
bdawn5 天前
深度集成DeepSeek大模型:WebSocket流式聊天实现
python·websocket·openai·api·实时聊天·deepseek大模型·流式输出
爱吃香蕉的阿豪5 天前
在c#中虚方法和抽象类的区别
深度学习·c#·.netcore