Amazon Elastic Beanstalk中的套接字服务器

时间:2013-08-06 20:28:55

标签: c# sockets amazon-web-services elastic-beanstalk

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

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

我的目标是

  1. 有一个更简单的部署过程,就像在生产环境中一样,我需要套接字服务器在负载均衡器后面,并且不希望在每个实例上部署Windows服务。
  2. 只有一个要部署的环境,因此每次我在DAL中进行更改时,我都不必部署(手动或自动)。
  3. 套接字服务器需要实现为Windows服务,现在就是。

    一切都在C#中实现。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我想,我得到了这个。但是,我无法在没有错误的情况下独立部署Windows服务,但仅作为Web应用程序的一部分。但是,在我的场景中不是一个真正的问题。

我有两个项目用于此场景; Web应用程序和Windows服务应用程序。

  1. 在构建服务器上,我创建了Windows服务的ZIP文件 可执行文件(使用zip.exe
  2. 在构建服务器上,我将ZIP文件上传到S3存储桶(使用s3.exe
  3. 网络应用程序的项目中,我创建了一个.ebextensions目录
  4. .ebextensions目录中,我有一个whatever.config文件
    1. 从S3获取ZIP文件并将其解压缩到我首选目录中的C-Drive
    2. 使用InstallUtil.exe实用程序(.Net框架的一部分)调用卸载并重新安装Windows服务的批处理文件(ZIP文件的一部分)
  5. 在我的夜间版本(完整解决方案)中,我使用awsdeploy.exe Web应用程序部署到Elastic Beanstalk。
    • 因此,我指向 Web应用程序configuration.txt目录中的builds文件。
    • 您可以使用Visual Studio中的手动Elastic Beanstalk部署生成此类构建文件;但过了一段时间它们很容易。
  6. 现在发生的事情是,在我的Nightly Builds中,Web应用程序被部署到Elastic Beanstalk环境中;部署将识别出存在配置并将执行上面步骤4中提到的步骤。由于Nightly Build在此之前创建并上传了Windows服务的ZIP文件,我确信我将安装最新的Windows服务。

    我现在唯一的问题是,由于臭名昭着的标记为删除错误,Windows服务并不总是自行安装。但这是另一个故事。

    我希望这有助于某人。如果有人建议简化这一点,欢迎他添加评论。