如何在IIS(Internet信息服务)上发布ASP.NET Core 8?
在本文中,我假设您的 Windows Server IIS 上已经有一个应用程序池。
按照步骤了解在 IIS 环境下发布 ASP.NET Core 8 应用程序的技巧。
您需要设置代码以支持 IIS 并将项目配置为在目标池的体系结构上运行。
要检查您的池是否在 x86 上运行,请验证inetmgr控制台,验证高级设置...并检查启用 32 位应用程序是否设置为true。
让我们执行发布步骤
步骤 1.启动新的 ASP.NET Core MVC。
dotnet new mvc -n MyTestApp
步骤 2. 如果编译应用程序并开始发布,您将面临这些默认参数。
步骤3. 我尝试发布并收到错误503。这是正常的,这就是我们将修复的问题。
步骤 4. 因此,我将此代码添加到 Program.cs 以启用 IIS 服务器选项。
builder.Services.Configure<IISServerOptions>(options =>
{
options.AutomaticAuthentication = false;
});
步骤 5.打开解决方案 右键-配置管理器,然后选择新建...。来自主动解决方案平台。
步骤 6. 选择您的架构池。它应该与 IIS 上的应用程序池相同(32 位为 x86)。
步骤7. 它看起来像这样。
步骤 8. 返回到发布配置,您需要对此进行更改。
第9步。 但是如果您尝试发布,您将收到相同的错误。
步骤 10. 要解决此问题,您需要将应用程序配置为在 Windows 下运行,添加 <TargetFramework>net8.0 -windows </TargetFramework>,卸载项目并进行编辑。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<Platforms>AnyCPU;x86</Platforms>
</PropertyGroup>
</Project>
步骤 11. 现在,如果您打开应用程序的“属性”,您将看到它已启用目标操作系统版本 7.0。
步骤 12. 现在,您需要选择目标框架:使用“ net8.0-windows ”:
步骤 13. 在发布dotnet之前,将文件app_offline.htm复制到目标 IIS 安装文件夹。这会关闭该网站,因此如果您尝试使用该网站,则会显示此消息:
大致翻译:
我们很快就会回来!
很抱歉给您带来不便,但我们目前正在进行一些维护。我们很快就会恢复在线!
步骤 13.1。 额外源代码,微软默认源代码。如果文件名 app_offline.htm 向 dotnet 指示应终止执行,它会自动重定向到该文件。您可以根据需要自定义此文件。
<!doctype html>
<title>Site Maintenance</title>
<style>
body { text-align: center; padding: 150px; }
h1 { font-size: 50px; }
body { font: 20px Helvetica, sans-serif; color: #333; }
article { display: block; text-align: left; width: 650px; margin: 0 auto; }
a { color: #dc8100; text-decoration: none; }
a:hover { color: #333; text-decoration: none; }
</style>
<article>
<h1>We’ll be back soon!</h1>
<div>
<p>Sorry for the inconvenience but we’re performing some maintenance at the moment. we’ll be back online shortly!</p>
</div>
</article>
步骤 14. 复制文件,然后删除 app_offline.htm文件以运行应用程序。这就是结果。
结论
有几个步骤,但必须遵循这些步骤才能成功发布 ASP.NET Core 8 应用程序。