在Azure或亚马逊上托管控制台应用程序,是否可能?

时间:2012-01-03 11:45:33

标签: c# sockets azure console amazon

我想知道是否可以将控制台应用程序编写到Windows Azure上的端口

控制台应用程序没有接口,它只会在不通知用户正在做什么的情况下完成工作。在这种情况下,它将是一个套接字应用程序。

我不希望它成为一个网站。它不会是项目的任何补充。

编辑: 谢谢大家这么快回复我。现在我得到了我一直在寻找的答案。现在我的问题是:在亚马逊会有什么叫做?它是Azure上的工作者角色......现在我知道感谢所有人

5 个答案:

答案 0 :(得分:7)

您绝对可以在Windows Azure中运行控制台应用程序,无论是Web角色还是辅助角色(Windows Server 2012或2008 R2 / SP2),您通常可以不修改地运行它们。你需要:

  • 为您的控制台应用程序提供二进制文件或安装程序,以及任何其他支持DLL。您可以将它们作为部署的一部分,或将它们存储在Blob存储中,并在VM启动时在本地复制它们。
  • 为控制台应用正在侦听的tcp / http / https端口配置输入端点
  • 处理stdout / stderr输出
  • 为控制台应用程序需要的临时文件/缓存/等配置本地存储
  • OnStart()(首选位置,在VM实例放入负载均衡器之前调用)或Run()启动控制台应用。

当有多个VM实例时,您需要考虑控制台应用程序的运行方式。您的控制台应用程序的两个实例可以同时运行吗?如果没有,您需要在启动控制台应用程序可执行文件之前设置互斥检查。

Steve Marx最近blogged about running the Mongoose Web Server in Windows Azure(Mongoose是一个基于C ++的控制台应用程序)。所有代码都在github的PackAndDeploy项目中,因此您可以看看他是如何设置的。

编辑2013年7月27日这个答案有点过时了。您还可以在Windows或Linux虚拟机中运行控制台应用程序。现在,您已将Windows Server 2012作为Web /辅助角色实例的操作系统选择。

答案 1 :(得分:2)

在亚马逊上,没有“工作者角色”和相关的超级简单部署。您只需部署控制台应用程序并手动或通过计划任务在EC2实例上启动它。 如果您的应用必须无人值守并且没有登录用户,那么您必须依赖部署在AWS EC2上的Windows服务。

答案 2 :(得分:1)

您可以在Windows Azure中使用辅助角色。输出可以写入某个monitors

答案 3 :(得分:1)

您无法托管控制台应用程序,您可以使用名为Worker Role的东西。

答案 4 :(得分:0)

您无法在Azure或任何其他云中直接托管控制台应用。正如Ghyath所说,在Azure的情况下你必须使用worker角色。

查看this示例,演示如何将控制台应用程序转换为windows azure中的辅助角色。参见Task1。