我在将Azure应用服务从. Net Core 5迁移到6,同时更新Azure Portal中的堆栈配置以使用. Net版本". Net 6(LTS)"时遇到问题。应用服务仅包含处理服务总线消息的连续webjob。webjob项目在本地运行正常,但部署到Azure时无法启动。在Kudu工具中,我看到一个错误:
[01/03/2023 18:21:32 > 1b0f90: ERR ] Unhandled exception. System.IO.IOException: Failed to bind to address http://127.0.0.1:5000: address already in use.
[01/03/2023 18:21:32 > 1b0f90: ERR ] ---> Microsoft.AspNetCore.Connections.AddressInUseException: Only one usage of each socket address (protocol/network address/port) is normally permitted.
[01/03/2023 18:21:32 > 1b0f90: ERR ] ---> System.Net.Sockets.SocketException (10048): Only one usage of each socket address (protocol/network address/port) is normally permitted.
最终,我能够通过将应用设置ASPNETCORE_URLS=http://localhost:5001
应用到应用服务,并将相同的应用设置应用到每个在同一应用服务计划中运行Web作业的. Net Core 6应用服务来克服错误,除了我必须将端口增加到不同的值。这似乎不是非Web作业应用程序的问题,并且仅当我在Azure Portal中将应用服务堆栈配置为. Net 6(LTS)时才会发生。
- 我的问题是:**是否有其他解决此问题的方法?我发现为运行的每个webjob添加唯一的端口分配. net 6是一个繁琐且不理想的操作,并且此问题将作为未来开发的一个严重问题而存在。
下面是我引入的依赖项:
Azure.Messaging.ServiceBus Version=7.11.0
Microsoft.Azure.WebJobs Version=3.0.32
Microsoft.ApplicationInsights.AspNetCore Version=2.21.0
Microsoft.ApplicationInsights.NLogTarget Version=2.21.0
Microsoft.Azure.Services.AppAuthentication Version=1.6.2
Microsoft.Azure.WebJobs.Extensions Version=4.0.1
Microsoft.Azure.WebJobs.Extensions.ServiceBus Version=5.3.0
Microsoft.Azure.WebJobs.Extensions.Storage Version=5.0.1
NLog Version=5.0.4
NLog.Targets.Seq Version=2.1.0
NLog.Web.AspNetCore Version=5.1.4
重现:
1.创建两个或多个仅实现Webjobs的. Net Core 6应用程序。我的Webjobs函数处理Service Bus主题消息,不确定是否需要重现。
1.将Webjob应用程序部署到同一应用程序服务计划
1.在每个Web应用的配置刀片设置选项卡中,确保运行时堆栈设置为". Net 6(LTS)",其余设置为默认值。
现在,当您在Azure Portal中查看Web作业时,您将看到该作业卡在重新启动周期中。
问题似乎是围绕设置堆栈设置版本为". Net 6(LTS)"。从this article看,似乎此设置使应用服务运行Kestrel与YARP,我猜功能奇偶性不是1:1与以前的堆栈。
1条答案
按热度按时间wmvff8tz1#
我已经创建了2个
.NET Core 6
应用程序,并部署到同一个Azure App Service
中的Azure Web Jobs
。App Service
=〉Configuration
=〉General Settings
中启用Always On
选项,以确保WebJobs
持续运行。.NET 6
。现在,当您在Azure Portal中查看Web作业时,您将看到该作业卡在重新启动周期中。
是的,即使是我也被同样的问题卡住了。我已经发布了第二版的
WebJob
正在显示Pending Restart
的状态。单击“Logs(日志)”时,我可以看到下面的错误已记录。
WebJobs
和存储Account
。我的
Program.cs
文件:参考取自MSDoc。