gpt4 book ai didi

asp.net - 在 IIS 上发布 .NET Core 2 API 并托管

转载 作者:行者123 更新时间:2023-12-02 03:43:38 26 4
gpt4 key购买 nike

我创建了一个 .net Core 2 API 并将其发布到服务器。

与普通的 .Net MVC 结构相比,该文件结构看起来非常奇怪

我熟悉的正常结构

enter image description here

这是部署的.NET CORE 2 API的结构

enter image description here

现在,如果我尝试将该文件夹转换为像普通 ASP.NET 应用程序一样的应用程序,它就不起作用。

我已经安装了the .NET Core Windows Server Hosting bundle在服务器上,但我仍然缺少一些东西。

您在哪里添加此代码以启用 IISIntegration?

var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();

最佳答案

该代码位于 Program.cs 中,但它是默认值,因此您应该已经没问题了。

ASP.NET Core 文件结构与 MVC 5 不同,但一旦安装了 .NET Core 托管运行时,其工作原理几乎相同。您将发布的文件拖放到 Web 服务器上的目录中。然后,您在 IIS 中设置一个站点来使用该目录。唯一稍有不同的是,您需要编辑应用程序池并将其设置为“无托管代码”,而不是特定的 .NET 运行时。除此之外,一切都应该正常。

也就是说,如果您的屏幕截图是文件的完整列表,那么您似乎确实丢失了一些内容。发布过程可能在某个时刻失败。尝试重新发布。

背景

ASP.NET Core 的工作方式与以前的 ASP.NET Web 应用程序根本不同。过去,所有 HTTP 模块等都来自安装在计算机上的整体 .NET 运行时,而 ASP.NET Core 应用程序是完全独立的。核心应用程序实际上只是一个控制台应用程序。在 IIS 设置中,实际的 Web 服务器是 Kestrel,它要么捆绑到 Core 应用程序中,要么从 .NET Core 运行时提供。 IIS 充当反向代理。将请求交给 Kestrel,然后返回从 Kestrel 获得的响应(因此称为“无托管代码”)。通过 IIS 部署,您的应用程序是一个 DLL,但它也可以完全独立并部署为可执行文件。重点是,是的,文件结构等非常不同,因为它从根本上以不同的方式工作。

关于asp.net - 在 IIS 上发布 .NET Core 2 API 并托管,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46113272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com