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

Dac*_*d3r 5 azure asp.net-core

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

应用程序2:此应用程序是使用dotnet新控制台创建的ASP.NET Core SignalR Server应用程序.此应用程序公开SignalR端点并且是"自托管".

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

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

应用1:npm start/serve -s build

.应用2:DOTNET运行以从所提供的ARGS一个hubpath和端口在localhost -CommandLine ARGS(运行的端口是为了让多个实例SignalR服务器可以在本地主机上运行 - 不知道这是做在Azure中,或者如果方式他们与单独的网址区分开来并单独托管在那里)

应用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容器中运行是否有意义?任何帮助深表感谢.

小智 4

我建议更改您的应用程序以使用 AppSettings 文件作为配置值而不是命令行参数。

  1. 您可以轻松更改应用程序设置的值,而无需重新部署或更改任何内容。

  2. 您可以根据环境拥有多个应用程序设置文件。

  3. 允许您轻松地为多个信号服务器复制具有相同代码但不同应用程序设置的应用程序。

这将使使用Visual Studio中的标准发布向导或通过命令行进行部署变得更加容易。