如何在Azure中部署和托管.NET Core自托管控制台应用程序?

时间:2018-01-30 07:49:20

标签: azure asp.net-core

应用程序1:我有一个React应用程序(基于create-react-app),我在Azure中添加了一个Web应用程序 - 这非常简单易用。这是使用JS SignalR客户端与服务器进行通信,如下所述。

应用2:此应用是使用dotnet新控制台创建的ASP.NET核心SignalR服务器应用程序。此应用程序公开SignalR端点并且是“自托管”。

应用程序3:第二个ASP.NET Core控制台应用程序设置为SignalR客户端。它负责获取一些数据,并将这些数据发送到SignalR服务器。这将SignalR端点(url)作为命令行参数。

在本地运行所有这些非常简单:

App 1:npm start / serve -s build

App 2:dotnet run -commandline args(在localhost上运行,从提供的args获取hubpath和端口。端口是这样的,以便多个实例SignalR服务器可以在localhost上运行 - 不确定这是否可以在Azure或者如果它们与单独的URL区分开来并单独托管在那里)

应用3:dotnet运行“http://localhost:5000/somenotificationhubname

我在每个控制台应用程序中添加了一个bat文件,因此我可以使用不同的args打开这些应用程序的多个实例。

所以本地运行就像点击3个bat文件一样容易。

但我对如何在Azure中托管所有这些感到遗憾。网络应用程序似乎非常简单。我刚刚在Azure中创建了一个Web应用程序,通过FTP客户端连接到它,并从React应用程序复制到build文件夹的内容。

但是如何处理ASP.NET Core控制台应用程序,以便SignalR控制台应用程序将在Azure中托管,并且其端点是否会暴露给其他2个应用程序使用?

我尝试在应用1下添加App 2和3作为webjobs,但这似乎不起作用。

我也听说过SignalR不应该在IIS上运行,所以让它自包含(exe)并在docker容器中运行是否有意义?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以借助Visual Studio

在Azure App Service中尝试发布配置文件

Reference 1
Reference 2

成功发布webApp后。您可以使用kudu服务(或)应用程序服务编辑器

仔细检查部署