AmazonElasticBeanstalk中的套接字服务器

本文关键字:服务器 套接字 AmazonElasticBeanstalk | 更新日期: 2023-09-27 18:26:43

目前,我有一个套接字服务器,它监听两个端口(例如7777和7778)上的传入连接并回复它们。数据存储在RDS环境中,RDS环境是访问相同数据的更大的Elastic Beanstalk环境的一部分。套接字服务器是作为Windows服务实现的。到目前为止,一切都很好。它有效。

然而,我在问自己,是否可以将套接字服务器也放在同一个(或可能是另一个)Elastic Beanstalk环境中,但到目前为止,我还没有找到任何方法。

我的目标是

  1. 为了有一个简单得多的部署过程,就像在生产环境中一样,我需要套接字服务器位于负载均衡器后面,而不想在每个实例上部署windows服务
  2. 只有一个环境可以部署,这样我就不必每次更改DAL时都进行部署(手动或自动)

套接字服务器不需要作为Windows服务来实现,它只是现在。

一切都是用C#实现的。感谢您的帮助。

AmazonElasticBeanstalk中的套接字服务器

我想,我已经涵盖了这一点。但是,我无法单独部署没有错误的Windows服务,只能将其作为Web应用程序的一部分。不过,在我看来,这不是一个真正的问题。

对于这种情况,我有两个项目;Web应用程序和Windows服务应用程序。

  1. 在构建服务器上,我创建了一个Windows服务的ZIP文件可执行文件(使用zip.exe
  2. 在构建服务器上,我将ZIP文件上传到S3存储桶(使用s3.exe
  3. web应用程序的项目中,我创建了一个.ebextensions目录
  4. .ebextensions目录中,我有一个whatever.config文件
    1. 从S3获取ZIP文件,并将其解压缩到我首选目录中的C-Drive
    2. 调用一个批处理文件(ZIP文件的一部分),该文件使用InstallUtil.exe实用程序(.Net框架的一部分
  5. 在(完整解决方案的)夜间构建中,我使用awsdeploy.exeweb应用程序部署到Elastic Beanstalk。
    • 因此,我指向web应用程序builds目录中的configuration.txt文件
    • 您可以通过Visual Studio中的手动Elastic Beanstalk部署生成这样的构建文件;但过了一段时间就很容易了

现在发生的事情是,在我的Nightly Builds中,Web应用程序被部署到Elastic Beanstalk环境中;部署将认识到存在配置,并且将执行上面步骤4下面提到的步骤。由于Nightly Build在此之前创建并上传了Windows服务的ZIP文件,我确信我会安装最新的Windows服务。

我现在唯一的问题是,Windows服务并不总是自己安装,因为臭名昭著的标记为删除错误。但那是另一回事。

我希望这能帮助到别人。如果有人有简化的建议,欢迎添加评论。