应用程序1:我有一个基于create-react-app的React应用程序,我已将其作为Web应用程序添加到Azure中-设置起来非常简单。这个应用程序使用JS SignalR客户端与服务器进行通信,接下来会提到。
应用程序2:这个应用程序是ASP.NET Core SignalR服务器应用程序,使用dotnet new console创建。该应用程序公开了一个SignalR端点,并且是“自托管”的。
应用程序3:第二个ASP.NET Core控制台应用程序被设置为SignalR客户端。它负责获取一些数据,并将这些数据发送到SignalR服务器。这需要将SignalR端点(url)作为命令行参数。
在本地运行所有这些都很简单:
应用程序1:npm start / serve -s build
应用程序2:dotnet run -commandline args(在localhost上运行,从提供的args获取hubpath和port。端口是为了让多个实例的SignalR服务器在localhost上运行-不确定是否在Azure中以此方式操作或者它们在那里分别使用不同的URL和独立托管)
应用程序3:dotnet run "http://localhost:5000/somenotificationhubname"
我在每个控制台应用程序中添加了一个bat文件,这样我就可以打开多个具有不同args的实例。
因此,在本地运行时只需单击3个bat文件即可。
但是,我有点迷失在如何在Azure中托管所有这些方面。Web应用程序似乎非常简单。我只需在Azure中创建一个Web应用程序,通过FTP客户端连接到它,并将React应用程序的构建文件夹内容复制过去。
但是,对于ASP.NET Core控制台应用程序,我该怎么办,以便SignalR控制台应用程序将在Azure中托管,并公开其端点供其他2个应用程序使用?
我尝试将应用程序2和3都添加为应用程序1下的Web作业,但那似乎没有起作用。
我还听说SignalR不应在IIS上运行,因此将其做成自包含(exe)并在docker容器中运行是否有意义?非常感谢任何帮助。