在本文中,我假设您的 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 应用程序。