应用程序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容器中运行是否有意义?非常感谢任何帮助。
答案 0 :(得分:0)
您可以借助Visual Studio
在Azure App Service中尝试发布配置文件成功发布webApp后。您可以使用kudu服务(或)应用程序服务编辑器
仔细检查部署