微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Azure中部署和托管.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 run -commandline args(在localhost上运行,从提供的args获取hubpath和端口.该端口使得SignalR服务器可以在localhost上运行多个实例 – 不确定这是否是在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容器中运行是否有意义?任何帮助深表感谢.

解决方法

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

  1. You can easily change the value of appsettings without redeploying or changing anything.

  2. You can have multiple appsettings file based on environments.

  3. Allows you to easily duplicate the app with same code but different appsettings for your multiple signalr server.

这样可以更轻松地使用Visual Studio中的标准发布向导或通过命令行进行部署.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐