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

mor*_*llo 10 c# sockets console amazon azure

我想知道是否可以在Windows Azure上将控制台应用程序写入端口.

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

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

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

Dav*_*gon 7

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

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

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

Steve Marx最近发表了关于在Windows Azure中运行Mongoose Web Server的博客(Mongoose是一个基于C++的控制台应用程序).所有代码都在github上的PackAndDeploy项目中,所以你可以看看他是如何设置的.

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


Har*_*san 0

您无法直接在 Azure 或任何其他云中托管控制台应用程序。正如 Ghyath 所说,如果使用 Azure,则必须使用辅助角色。

查看示例,它演示了如何将控制台应用程序转换为 Windows Azure 中的辅助角色。请参阅任务 1。