AmazonElasticBeanstalk中的套接字服务器
本文关键字:服务器 套接字 AmazonElasticBeanstalk | 更新日期: 2023-09-27 18:26:43
目前,我有一个套接字服务器,它监听两个端口(例如7777和7778)上的传入连接并回复它们。数据存储在RDS环境中,RDS环境是访问相同数据的更大的Elastic Beanstalk环境的一部分。套接字服务器是作为Windows服务实现的。到目前为止,一切都很好。它有效。
然而,我在问自己,是否可以将套接字服务器也放在同一个(或可能是另一个)Elastic Beanstalk环境中,但到目前为止,我还没有找到任何方法。
我的目标是
- 为了有一个简单得多的部署过程,就像在生产环境中一样,我需要套接字服务器位于负载均衡器后面,而不想在每个实例上部署windows服务
- 只有一个环境可以部署,这样我就不必每次更改DAL时都进行部署(手动或自动)
套接字服务器不需要作为Windows服务来实现,它只是现在。
一切都是用C#实现的。感谢您的帮助。
我想,我已经涵盖了这一点。但是,我无法单独部署没有错误的Windows服务,只能将其作为Web应用程序的一部分。不过,在我看来,这不是一个真正的问题。
对于这种情况,我有两个项目;Web应用程序和Windows服务应用程序。
- 在构建服务器上,我创建了一个Windows服务的ZIP文件可执行文件(使用
zip.exe
) - 在构建服务器上,我将ZIP文件上传到S3存储桶(使用
s3.exe
) - 在web应用程序的项目中,我创建了一个
.ebextensions
目录 - 在
.ebextensions
目录中,我有一个whatever.config
文件- 从S3获取ZIP文件,并将其解压缩到我首选目录中的C-Drive
- 调用一个批处理文件(ZIP文件的一部分),该文件使用
InstallUtil.exe
实用程序(.Net框架的一部分
- 在(完整解决方案的)夜间构建中,我使用
awsdeploy.exe
将web应用程序部署到Elastic Beanstalk。- 因此,我指向web应用程序的
builds
目录中的configuration.txt
文件 - 您可以通过Visual Studio中的手动Elastic Beanstalk部署生成这样的构建文件;但过了一段时间就很容易了
- 因此,我指向web应用程序的
现在发生的事情是,在我的Nightly Builds中,Web应用程序被部署到Elastic Beanstalk环境中;部署将认识到存在配置,并且将执行上面步骤4下面提到的步骤。由于Nightly Build在此之前创建并上传了Windows服务的ZIP文件,我确信我会安装最新的Windows服务。
我现在唯一的问题是,Windows服务并不总是自己安装,因为臭名昭著的标记为删除错误。但那是另一回事。
我希望这能帮助到别人。如果有人有简化的建议,欢迎添加评论。