gpt4 book ai didi

从 2.2 迁移到 3.1 的 ASP.Net Core 解决方案在发布时不会运行

转载 作者:行者123 更新时间:2023-12-03 16:37:50 25 4
gpt4 key购买 nike

这是我从 ASP.Net Core 2.2 更新到 3.1 的第二个项目。第一个运行良好。第二个在 Visual Studio (2019) 中运行良好,但是当您发布它并从 dotnet CLI 运行它时,控制台会无限期挂起,控制台中没有输出,我启用了 stdout,输出文件为零字节。

该解决方案托管在 IIS 中,当我尝试通过 IIS 运行它时,我在应用程序事件日志中看到以下条目:

Application '/LM/W3SVC/2/ROOT' with physical root 'D:\wwwroot\InclusionService_UAT\' failed to start process with commandline 'C:\Program Files\dotnet\dotnet.exe .\InclusionService.Web.dll' at stage 'PostStartCheck', ErrorCode = '0x8027025a', assigned port 12973, retryCounter '1'.





Application '/LM/W3SVC/2/ROOT' with physical root 'D:\wwwroot\InclusionService_UAT\' failed to start process with commandline 'C:\Program Files\dotnet\dotnet.exe .\InclusionService.Web.dll' with multiple retries. Failed to bind to port '35033'. First 30KB characters of captured stdout and stderr logs from multiple retries: nothing more shown



这是我的 Program.cs,在我的其他迁移解决方案中完全相同:
public static void Main(string[] args)
{
var builder = new HostBuilder()
.ConfigureWebHostDefaults(opt =>
{
opt.UseStartup<Startup>();
opt.UseIISIntegration();
});

var host = builder.Build();
host.Start();
}

如果有一些输出,调试会容易得多,但没有什么可继续的。

最佳答案

请参阅 Yush0 的答案以获取正确的解决方案。
问题在于使用新的 IHost而不是现有的 IWebHostProgram.cs .
值得注意的是IHost使用 Razor Pages 迁移到 .NET Core 3.1 时效果很好,但此解决方案是 MVC 应用程序,只能在 IIS 中使用 IWebHost .
当我将原始代码放回如下时,应用程序立即在 IIS 中启动:

public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseIISIntegration();
}

关于从 2.2 迁移到 3.1 的 ASP.Net Core 解决方案在发布时不会运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59545094/

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